<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>DSpace Documentation : Upgrading a DSpace Installation</title>
	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">	    
    </head>

    <body>
	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
		    <tr>
			    <td valign="top" class="pagebody">
				    <div class="pageheader">
					    <span class="pagetitle">
                            DSpace Documentation : Upgrading a DSpace Installation
                                                    </span>
				    </div>
				    <div class="pagesubheading">
					    This page last changed on Mar 25, 2011 by <font color="#0050B2">tdonohue</font>.
				    </div>

				    <h1><a name="UpgradingaDSpaceInstallation-DSpaceSystemDocumentation%3AUpgradingaDSpaceInstallation"></a>DSpace System Documentation: Upgrading a DSpace Installation</h1>

<p>This section describes how to upgrade a DSpace installation from one version to the next. Details of the differences between the functionality of each version are given in the <a href="History.html" title="History">Version History</a> section.</p>

<div class='panelMacro'><table class='warningMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/forbidden.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Test Your Upgrade Process</b><br />In order to minimize downtime, it is always recommended to first perform a DSpace upgrade using a Development or Test server. You should note any problems you may have encountered (and also how to resolve them) before attempting to upgrade your Production server. It also gives you a chance to "practice" at the upgrade. Practice makes perfect, and minimizes problems and downtime. Additionally, if you are using a version control system, such as subversion or git, to manage your locally developed features or modifications, then you can do all of your upgrades in your local version control system on your Development server and commit the changes. That way your Production server can just checkout your well tested and upgraded code.</td></tr></table></div>

<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>If you are upgrading across multiple versions</b><br />You should perform all of the steps of each upgrade between the version from which you are starting and the version to which you are upgrading. You do <em>not</em> need to install each intervening version, but you do need to carry out all of the configuration changes and additions, and all of the database updates, for each one. For example, when upgrading from 1.5.x to 1.7.x, you need to perform the configuration &amp; database upgrade steps detailed in <a href="#UpgradingaDSpaceInstallation-Upgradingfrom1.5.xto1.6.x">Upgrading from 1.5.x to 1.6.x</a> followed by those detailed in <a href="#UpgradingaDSpaceInstallation-Upgradingfrom1.6.xto1.7.x">Upgrading from 1.6.x to 1.7.x</a>.</td></tr></table></div>

<div>
<ul>
    <li><a href='#UpgradingaDSpaceInstallation-DSpaceSystemDocumentation%3AUpgradingaDSpaceInstallation'>DSpace System Documentation: Upgrading a DSpace Installation</a></li>
<ul>
    <li><a href='#UpgradingaDSpaceInstallation-Upgradingfrom1.7to1.7.x'>Upgrading from 1.7 to 1.7.x</a></li>
    <li><a href='#UpgradingaDSpaceInstallation-Upgradingfrom1.6.xto1.7.x'>Upgrading from 1.6.x to 1.7.x</a></li>
    <li><a href='#UpgradingaDSpaceInstallation-Upgradingfrom1.6to1.6.x'>Upgrading from 1.6 to 1.6.x</a></li>
    <li><a href='#UpgradingaDSpaceInstallation-Upgradingfrom1.5.xto1.6.x'>Upgrading from 1.5.x to 1.6.x</a></li>
    <li><a href='#UpgradingaDSpaceInstallation-UpgradingFrom1.5or1.5.1to1.5.2'>Upgrading From 1.5 or 1.5.1 to 1.5.2</a></li>
    <li><a href='#UpgradingaDSpaceInstallation-UpgradingFrom1.4.2to1.5'>Upgrading From 1.4.2 to 1.5</a></li>
    <li><a href='#UpgradingaDSpaceInstallation-UpgradingFrom1.4.1to1.4.2'>Upgrading From 1.4.1 to 1.4.2</a></li>
    <li><a href='#UpgradingaDSpaceInstallation-UpgradingFrom1.4to1.4.x'>Upgrading From 1.4 to 1.4.x</a></li>
    <li><a href='#UpgradingaDSpaceInstallation-UpgradingFrom1.3.2to1.4.x'>Upgrading From 1.3.2 to 1.4.x</a></li>
    <li><a href='#UpgradingaDSpaceInstallation-UpgradingFrom1.3.1to1.3.2'>Upgrading From 1.3.1 to 1.3.2</a></li>
    <li><a href='#UpgradingaDSpaceInstallation-UpgradingFrom1.2.xto1.3.x'>Upgrading From 1.2.x to 1.3.x</a></li>
    <li><a href='#UpgradingaDSpaceInstallation-UpgradingFrom1.2.1to1.2.2'>Upgrading From 1.2.1 to 1.2.2</a></li>
    <li><a href='#UpgradingaDSpaceInstallation-UpgradingFrom1.2to1.2.1'>Upgrading From 1.2 to 1.2.1</a></li>
    <li><a href='#UpgradingaDSpaceInstallation-UpgradingFrom1.1%28or1.1.1%29to1.2'>Upgrading From 1.1 (or 1.1.1) to 1.2</a></li>
    <li><a href='#UpgradingaDSpaceInstallation-UpgradingFrom1.1to1.1.1'>Upgrading From 1.1 to 1.1.1</a></li>
    <li><a href='#UpgradingaDSpaceInstallation-UpgradingFrom1.0.1to1.1'>Upgrading From 1.0.1 to 1.1</a></li>
</ul>
</ul></div>

<h2><a name="UpgradingaDSpaceInstallation-Upgradingfrom1.7to1.7.x"></a>Upgrading from 1.7 to 1.7.x</h2>

<p>In the notes below <tt>[dspace]</tt> refers to the install directory for your existing DSpace installation, and <tt>[dspace-source]</tt> to the source directory for DSpace 1.7.1. Whenever you see these path references, be sure to replace them with the actual path names on your local system. Additionally, be sure to backup your configs, source code modifications, and database before doing a step that could destroy your instance.</p>


<ol>
	<li><b>Download DSpace 1.7.1</b> Either download DSpace 1.7.1 from <a href="http://www.dspace.org/latest-release/">DSpace.org</a> or check it out directly from the&nbsp;<a href="http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1/">SVN code repository</a>. If you downloaded DSpace do not unpack it on top of your existing installation. Refer to <a href="Installation.html#Installation-Installation">Installation Instructions, Step 3</a> for unpacking directives.</li>
	<li><b>Apply any customizations.</b>&nbsp;If you have made any local customizations to your DSpace installation they will need to be migrated over to the new DSpace. These are housed in one of the following places:
	<ul>
		<li>JSPUI modifications: <tt>[dspace-source]/dspace/modules/jspui/src/main/webapp/</tt></li>
		<li>XMLUI modifications: <tt>[dspace-source]/dspace/modules/xmlui/src/main/webapp/</tt></li>
		<li>Config modifications: [dspace]/config</li>
	</ul>
	</li>
	<li><b>Build DSpace.</b>&nbsp;Run the following commands to compile DSpace:
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
<pre>cd [dspace-source]/dspace/
mvn -U clean package</pre>
</div></div>
<p> You will find the result in <tt>[dspace-source]/dspace/target/dspace-[version]-build.dir</tt> . Inside this directory is the compiled binary distribution of DSpace. Before rebuilding DSpace ('package'), the above command will clean out any previously compiled code ('clean') and ensure that your local DSpace JAR files are updated from the remote maven repository.</p></li>
	<li><b>Stop Tomcat.</b>&nbsp;Take down your servlet container. For Tomcat, use the&nbsp; <tt>$CATALINA/shutdown.sh</tt> &nbsp;script. (Many Unix-based installations will have a startup/shutdown script in the <tt>/etc/init.d</tt> or <tt>/etc/rc.d</tt> directories.)</li>
	<li><b>Backup Your DSpace.</b> Make a complete backup of your system, including:
	<ul>
		<li>A snapshot of the database.&nbsp;<em>To have a "snapshot" of the PostgreSQL database use Postgres'</em> <em><a href="http://www.postgresql.org/docs/8.4/static/app-pgdump.html">pg_dump</a></em> <em>command.</em></li>
		<li>The asset store (<tt>[dspace]/assetstore</tt> by default, and any other assetstores configured in the <tt>[dspace]/config/dspace.cfg</tt> "assetstore.dir" and "assetstore.dir.#" settings)</li>
		<li>Your configuration files and customizations to DSpace (including any customized scripts).</li>
	</ul>
	</li>
	<li><b>Update DSpace.</b> Update the DSpace installed directory with the new code and libraries. Issue the following commands:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">cd [dspace-source]/dspace/target/dspace-[version]-build.dir
ant -Dconfig=[dspace]/config/dspace.cfg update</pre>
</div></div></li>
	<li><b>Generate Browse and Search Indexes</b>. Though there are not any database changes between 1.7 and 1.7.1 release, it makes good policy to rebuild your search and browse indexes when upgrading to a new release. To do this, run the following command from your DSpace install directory (as the dspace user): 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">[dspace]/bin/dspace index-init</pre>
</div></div></li>
	<li><b>Deploy Web Applications</b>. Copy the web applications files from your <tt>[dspace]/webapps</tt> directory to the subdirectory of your servlet container (e.g. tomcat): 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">cp -R [dspace]/webapps/* [tomcat]/webapps/</pre>
</div></div></li>
	<li><b>Restart servlet container.</b> Now restart your Tomcat/Jetty/Resin server program and test out the upgrade.</li>
</ol>


<h2><a name="UpgradingaDSpaceInstallation-Upgradingfrom1.6.xto1.7.x"></a>Upgrading from 1.6.x to 1.7.x</h2>

<p>In the notes below <tt>[dspace]</tt> refers to the install directory for your existing DSpace installation, and <em>[dspace-source]</em> to the source directory for DSpace 1.7.x. Whenever you see these path references, be sure to replace them with the actual path names on your local system.</p>

<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>Before upgrading you need to check you are using the current recommended minimum versions of Java (1.6), Maven (2.0.8 or above) and ant (1.7 or above).  For more details, see the current listing of <a href="Installation.html#Installation-PrerequisiteSoftware">Prerequisite Software</a></td></tr></table></div>

<ol>
	<li><b>Backup Your DSpace.</b> First, and foremost, make a complete backup of your system, including:
	<ul>
		<li>A snapshot of the database. <em>To have a "snapshot" of the PostgreSQL database, you need to shut it down during the backup. You should also have your regular PostgreSQL Backup output (using Postgres'</em> <em><a href="http://www.postgresql.org/docs/8.4/static/app-pgdump.html">pg_dump command</a></em><em>).</em></li>
		<li>The asset store (<tt>[dspace]/assetstore</tt> by default)</li>
		<li>Your configuration files and customizations to DSpace (including any customized scripts).</li>
	</ul>
	</li>
	<li><b>Download DSpace 1.7.x</b> Retrieve the new DSpace 1.7.x source code either as a download from <a href="http://www.dspace.org/latest-release/">DSpace.org</a> or check it out directly from the <a href="http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1/">SVN code repository</a>. If you downloaded DSpace do not unpack it on top of your existing installation. Refer to <a href="Installation.html#Installation-Installation">Installation Instructions, Step 3</a> for unpacking directives.</li>
	<li><b>Stop Tomcat.</b> Take down your servlet container. For Tomcat, use the <tt>$CATALINA_HOME/bin/shutdown.sh</tt> script. (Many Unix-based installations will have a startup/shutdown script in the <tt>/etc/init.d</tt> or <tt>/etc/rc.d</tt> directories).</li>
	<li><b>Apply any customizations.</b> If you have made any local customizations to your DSpace installation they will need to be migrated over to the new DSpace. These are normally housed in one of the following places:
	<ul>
		<li>JSPUI modifications: <tt>[dspace-source]/dspace/modules/jspui/src/main/webapp/</tt></li>
		<li>XMLUI modifications: <tt>[dspace-source]/dspace/modules/xmlui/src/main/webapp/</tt></li>
	</ul>
	</li>
	<li><b>Update Configuration Files.</b> Some parameters have changed and some are new.  You can either attempt to make these changes in your current 1.6.x <tt>dspace.cfg</tt> file, or you can start with a new 1.7 <tt>dspace.cfg</tt> and re-modify it as needed. Configuration changes are noted below:
	<ul>
		<li>&#42;<b>CORRECTION</b>&#42; &nbsp;There was a missing hyphen "-" in the property key for mail character set:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"># Set the <span class="code-keyword">default</span> mail character set. This may be over ridden by providing a line
# inside the email template <span class="code-quote">"charset: &lt;encoding&gt;"</span>, otherwise <span class="code-keyword">this</span> <span class="code-keyword">default</span> is used.
#mail.charset = UTF-8</pre>
</div></div></li>
		<li>&#42;<b>CORRECTION</b>&#42;  This was moved from the end of the solr configuration section to just under Logging Configurations:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"># If enabled, the logging and the solr statistics system will look <span class="code-keyword">for</span>
# an X-Forward header. If it finds it, it will use <span class="code-keyword">this</span> <span class="code-keyword">for</span> the user IP Address
# useProxies = <span class="code-keyword">true</span></pre>
</div></div></li>
		<li>&#42;<b>CHANGE</b>&#42; The MediaFilter is now able to process Power Point Text Extracter
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">#Names of the enabled MediaFilter or FormatFilter plugins
filter.plugins = PDF Text Extractor, HTML Text Extractor, \
                                 PowerPoint Text Extractor, \
                                 Word Text Extractor, JPEG Thumbnail
# [To enable Branded Preview]: remove last line above, and uncomment 2 lines below
#                        Word Text Extractor, JPEG Thumbnail, \
#                        Branded Preview JPEG

#Assign 'human-understandable' names to each filter
plugin.named.org.dspace.app.mediafilter.FormatFilter = \
  org.dspace.app.mediafilter.PDFFilter = PDF Text Extractor, \
  org.dspace.app.mediafilter.HTMLFilter = HTML Text Extractor, \
  org.dspace.app.mediafilter.WordFilter = Word Text Extractor, \
  org.dspace.app.mediafilter.PowerPointFilter = PowerPoint Text Extractor, \
  org.dspace.app.mediafilter.JPEGFilter = JPEG Thumbnail, \
  org.dspace.app.mediafilter.BrandedPreviewJPEGFilter = Branded Preview JPEG

#Configure each filter's input format(s)
filter.org.dspace.app.mediafilter.PDFFilter.inputFormats = Adobe PDF
filter.org.dspace.app.mediafilter.HTMLFilter.inputFormats = HTML, Text
filter.org.dspace.app.mediafilter.WordFilter.inputFormats = Microsoft Word
filter.org.dspace.app.mediafilter.PowerPointFilter.inputFormats = Microsoft Powerpoint, Microsoft Powerpoint XML
filter.org.dspace.app.mediafilter.JPEGFilter.inputFormats = BMP, GIF, JPEG, image/png
filter.org.dspace.app.mediafilter.BrandedPreviewJPEGFilter.inputFormats = BMP, GIF, JPEG, image/png</pre>
</div></div></li>
		<li>&#42;<b>CHANGE</b>&#42; The Crosswalk Plugin Configuration has changed with additional lines.  Edit your file accordingly:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"># Crosswalk Plugin Configuration:
#   The purpose of Crosswalks is to translate an external metadata format to/from
#   the DSpace Internal Metadata format (DIM) or the DSpace Database.
#   Crosswalks are often used by one or more Packager plugins (see below).
plugin.named.org.dspace.content.crosswalk.IngestionCrosswalk = \
  org.dspace.content.crosswalk.AIPDIMCrosswalk = DIM, \
  org.dspace.content.crosswalk.AIPTechMDCrosswalk = AIP-TECHMD, \
  org.dspace.content.crosswalk.PREMISCrosswalk = PREMIS, \
  org.dspace.content.crosswalk.OREIngestionCrosswalk = ore, \
  org.dspace.content.crosswalk.NullIngestionCrosswalk = NIL, \
  org.dspace.content.crosswalk.OAIDCIngestionCrosswalk = dc, \
  org.dspace.content.crosswalk.DIMIngestionCrosswalk = dim, \
  org.dspace.content.crosswalk.METSRightsCrosswalk = METSRIGHTS, \
  org.dspace.content.crosswalk.RoleCrosswalk = DSPACE-ROLES

plugin.selfnamed.org.dspace.content.crosswalk.IngestionCrosswalk = \
  org.dspace.content.crosswalk.XSLTIngestionCrosswalk, \
  org.dspace.content.crosswalk.QDCCrosswalk

plugin.named.org.dspace.content.crosswalk.StreamIngestionCrosswalk = \
  org.dspace.content.crosswalk.NullStreamIngestionCrosswalk = NULLSTREAM, \
  org.dspace.content.crosswalk.CreativeCommonsRDFStreamIngestionCrosswalk = DSPACE_CCRDF, \
  org.dspace.content.crosswalk.LicenseStreamIngestionCrosswalk = DSPACE_DEPLICENSE

plugin.named.org.dspace.content.crosswalk.DisseminationCrosswalk = \
  org.dspace.content.crosswalk.AIPDIMCrosswalk = DIM, \
  org.dspace.content.crosswalk.AIPTechMDCrosswalk = AIP-TECHMD, \
  org.dspace.content.crosswalk.SimpleDCDisseminationCrosswalk = DC, \
  org.dspace.content.crosswalk.SimpleDCDisseminationCrosswalk = dc, \
  org.dspace.content.crosswalk.PREMISCrosswalk = PREMIS, \
  org.dspace.content.crosswalk.METSDisseminationCrosswalk = METS, \
  org.dspace.content.crosswalk.METSDisseminationCrosswalk = mets, \
  org.dspace.content.crosswalk.METSRightsCrosswalk = METSRIGHTS, \
  org.dspace.content.crosswalk.OREDisseminationCrosswalk = ore, \
  org.dspace.content.crosswalk.DIMDisseminationCrosswalk = dim, \
  org.dspace.content.crosswalk.RoleCrosswalk = DSPACE-ROLES
</pre>
</div></div></li>
		<li>&#42;<b>NEW</b>&#42;
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">plugin.named.org.dspace.content.crosswalk.StreamDisseminationCrosswalk = \
  org.dspace.content.crosswalk.CreativeCommonsRDFStreamDisseminationCrosswalk = DSPACE_CCRDF, \
  org.dspace.content.crosswalk.CreativeCommonsTextStreamDisseminationCrosswalk = DSPACE_CCTEXT, \
  org.dspace.content.crosswalk.LicenseStreamDisseminationCrosswalk = DSPACE_DEPLICENSE</pre>
</div></div></li>
		<li>&#42;<b>CHANGE</b>&#42; The Packager Plugin Configuration has changed considerably.  Carefully revise your configuration file:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"> Packager Plugin Configuration:
#   Configures the ingest and dissemination packages that DSpace supports.
#   These Ingester and Disseminator classes support a specific <span class="code-keyword">package</span> file format
#   (e.g. METS) which DSpace understands how to <span class="code-keyword">import</span>/export.  Each Packager
#   plugin often will use one (or more) Crosswalk plugins to translate metadata (see above).
plugin.named.org.dspace.content.packager.PackageDisseminator = \
  org.dspace.content.packager.DSpaceAIPDisseminator = AIP, \
  org.dspace.content.packager.DSpaceMETSDisseminator = METS, \
  org.dspace.content.packager.RoleDisseminator = DSPACE-ROLES

plugin.named.org.dspace.content.packager.PackageIngester = \
  org.dspace.content.packager.DSpaceAIPIngester = AIP, \
  org.dspace.content.packager.PDFPackager  = Adobe PDF, PDF, \
  org.dspace.content.packager.DSpaceMETSIngester = METS, \
  org.dspace.content.packager.RoleIngester = DSPACE-ROLES
</pre>
</div></div></li>
		<li>&#42;<b>CHANGE</b>&#42; The Mets Ingester configuration has change and been updated.  Carefully edit:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">#### METS ingester configuration:
# These settings configure how DSpace will ingest a METS-based <span class="code-keyword">package</span>

# Configures the METS-specific <span class="code-keyword">package</span> ingesters (defined above)
# '<span class="code-keyword">default</span>' settings are specified by '<span class="code-keyword">default</span>' key

# Default Option to save METS manifest in the item: (<span class="code-keyword">default</span> is <span class="code-keyword">false</span>)
mets.<span class="code-keyword">default</span>.ingest.preserveManifest = <span class="code-keyword">false</span>

# Default Option to make use of collection templates when using the METS ingester (<span class="code-keyword">default</span> is <span class="code-keyword">false</span>)
mets.<span class="code-keyword">default</span>.ingest.useCollectionTemplate = <span class="code-keyword">false</span>

# Default crosswalk mappings
# Maps a METS 'mdtype' value to a DSpace crosswalk <span class="code-keyword">for</span> processing.
# When the 'mdtype' value is same as the name of a crosswalk, that crosswalk
# will be called automatically (e.g. mdtype='PREMIS' calls the crosswalk named
# 'PREMIS', unless specified differently in below mapping)
# Format is 'mets.<span class="code-keyword">default</span>.ingest.crosswalk.&lt;mdType&gt; = &lt;DSpace-crosswalk-name&gt;'
mets.<span class="code-keyword">default</span>.ingest.crosswalk.DC = QDC
mets.<span class="code-keyword">default</span>.ingest.crosswalk.DSpaceDepositLicense = DSPACE_DEPLICENSE
mets.<span class="code-keyword">default</span>.ingest.crosswalk.Creative\ Commons = DSPACE_CCRDF
mets.<span class="code-keyword">default</span>.ingest.crosswalk.CreativeCommonsRDF = DSPACE_CCRDF
mets.<span class="code-keyword">default</span>.ingest.crosswalk.CreativeCommonsText = NULLSTREAM

# Locally cached copies of METS schema documents to save time on ingest.  This
# will often speed up validation &amp; ingest significantly.  Before enabling
# these settings, you must manually cache all METS schemas in
# [dspace]/config/schemas/ (does not exist by <span class="code-keyword">default</span>).  Most schema documents
# can be found on the http:<span class="code-comment">//www.loc.gov/ website.
</span># Enable the below settings to pull these *.xsd files from your local cache.
# (Setting format: mets.xsd.&lt;abbreviation&gt; = &lt;namespace&gt; &lt;local-file-name&gt;)
#mets.xsd.mets = http:<span class="code-comment">//www.loc.gov/METS/ mets.xsd
</span>#mets.xsd.xlink = http:<span class="code-comment">//www.w3.org/1999/xlink xlink.xsd
</span>#mets.xsd.mods = http:<span class="code-comment">//www.loc.gov/mods/v3 mods.xsd
</span>#mets.xsd.xml = http:<span class="code-comment">//www.w3.org/XML/1998/namespace xml.xsd
</span>#mets.xsd.dc = http:<span class="code-comment">//purl.org/dc/elements/1.1/ dc.xsd
</span>#mets.xsd.dcterms = http:<span class="code-comment">//purl.org/dc/terms/ dcterms.xsd
</span>#mets.xsd.premis = http:<span class="code-comment">//www.loc.gov/standards/premis PREMIS.xsd
</span>#mets.xsd.premisObject = http:<span class="code-comment">//www.loc.gov/standards/premis PREMIS-<span class="code-object">Object</span>.xsd
</span>#mets.xsd.premisEvent = http:<span class="code-comment">//www.loc.gov/standards/premis PREMIS-Event.xsd
</span>#mets.xsd.premisAgent = http:<span class="code-comment">//www.loc.gov/standards/premis PREMIS-Agent.xsd
</span>#mets.xsd.premisRights = http:<span class="code-comment">//www.loc.gov/standards/premis PREMIS-Rights.xsd
</span>
#### AIP Ingester &amp; Disseminator Configuration
# These settings configure how DSpace will ingest/export its own
# AIP (Archival Information Package) format <span class="code-keyword">for</span> backups and restores
# (Please note, as the DSpace AIP format is also METS based, it will also
# use many of the 'METS ingester configuration' settings directly above)

# AIP-specific ingestion crosswalk mappings
# (overrides 'mets.<span class="code-keyword">default</span>.ingest.crosswalk' settings)
# Format is 'mets.dspaceAIP.ingest.crosswalk.&lt;mdType&gt; = &lt;DSpace-crosswalk-name&gt;'
mets.dspaceAIP.ingest.crosswalk.DSpaceDepositLicense = NULLSTREAM
mets.dspaceAIP.ingest.crosswalk.CreativeCommonsRDF = NULLSTREAM
mets.dspaceAIP.ingest.crosswalk.CreativeCommonsText = NULLSTREAM

# Create EPerson <span class="code-keyword">if</span> necessary <span class="code-keyword">for</span> Submitter when ingesting AIP (<span class="code-keyword">default</span>=<span class="code-keyword">false</span>)
# (by <span class="code-keyword">default</span>, EPerson creation is already handled by 'DSPACE-ROLES' Crosswalk)
#mets.dspaceAIP.ingest.createSubmitter = <span class="code-keyword">false</span>

## AIP-specific Disseminator settings
# These settings allow you to customize which metadata formats are exported in AIPs

# Technical metadata in AIP (exported to METS &lt;techMD&gt; section)
# Format is &lt;label-<span class="code-keyword">for</span>-METS&gt;:&lt;DSpace-crosswalk-name&gt; [, ...] (label is optional)
# If unspecfied, defaults to <span class="code-quote">"PREMIS"</span>
aip.disseminate.techMD = PREMIS, DSPACE-ROLES

# Source metadata in AIP (exported to METS &lt;sourceMD&gt; section)
# Format is &lt;label-<span class="code-keyword">for</span>-METS&gt;:&lt;DSpace-crosswalk-name&gt; [, ...] (label is optional)
# If unspecfied, defaults to <span class="code-quote">"AIP-TECHMD"</span>
aip.disseminate.sourceMD = AIP-TECHMD

# Preservation metadata in AIP (exported to METS &lt;digipovMD&gt; section)
# Format is &lt;label-<span class="code-keyword">for</span>-METS&gt;:&lt;DSpace-crosswalk-name&gt; [, ...] (label is optional)
# If unspecified, defaults to nothing in &lt;digiprovMD&gt; section
#aip.disseminate.digiprovMD =

# Rights metadata in AIP (exported to METS &lt;rightsMD&gt; section)
# Format is &lt;label-<span class="code-keyword">for</span>-METS&gt;:&lt;DSpace-crosswalk-name&gt; [, ...] (label is optional)
# If unspecified, <span class="code-keyword">default</span> to adding all Licenses (CC and Deposit licenses),
# as well as METSRights information
aip.disseminate.rightsMD = DSpaceDepositLicense:DSPACE_DEPLICENSE, \
    CreativeCommonsRDF:DSPACE_CCRDF, CreativeCommonsText:DSPACE_CCTEXT, METSRIGHTS

# Descriptive metadata in AIP (exported to METS &lt;dmdSec&gt; section)
# Format is &lt;label-<span class="code-keyword">for</span>-METS&gt;:&lt;DSpace-crosswalk-name&gt; [, ...] (label is optional)
# If unspecfied, defaults to <span class="code-quote">"MODS, DIM"</span>
aip.disseminate.dmd = MODS, DIM</pre>
</div></div></li>
		<li>&#42;<b>NEW</b>&#42; A new property has been added to control the discovery index for the Event System Configuration:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"># consumer to maintain the discovery index
event.consumer.discovery.class = org.dspace.discovery.IndexEventConsumer
event.consumer.discovery.filters = Community|Collection|Item|Bundle+Add|Create|Modify|Modify_Metadata|Delete|Remove</pre>
</div></div></li>
		<li>&#42;<b>NEW</b>&#42; License bundle display is now configurable.  You are able to either display or suppress.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"># whether to display the contents of the licence bundle (often just the deposit
# licence in standard DSpace installation
webui.licence_bundle.show = <span class="code-keyword">false</span></pre>
</div></div></li>
		<li>&#42;<b>CORRECTION</b>&#42; Thumbnail generation.  The width and height of generated thumbnails had a missing equal sign.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"># maximum width and height of generated thumbnails
thumbnail.maxwidth  = 80
thumbnail.maxheight = 80</pre>
</div></div></li>
		<li>&#42;<b>CORRECTION and ADDITION</b>&#42; Authority Control Settings have changed.  Formerly called ChoiceAuthority, it is now referred to as DCInputAuthority.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">## The DCInputAuthority plugin is automatically configured with every
## value-pairs element in input-forms.xml, namely:
##   common_identifiers, common_types, common_iso_languages
##
## The DSpaceControlledVocabulary plugin is automatically configured
## with every *.xml file in [dspace]/config/controlled-vocabularies,
## and creates a plugin instance <span class="code-keyword">for</span> each, using base filename as the name.
## eg: nsi, srsc.
## Each DSpaceControlledVocabulary plugin comes with three configuration options:
# vocabulary.plugin._plugin_.hierarchy.store = &lt;<span class="code-keyword">true</span>|<span class="code-keyword">false</span>&gt;    # <span class="code-keyword">default</span>: <span class="code-keyword">true</span>
# vocabulary.plugin._plugin_.hierarchy.suggest = &lt;<span class="code-keyword">true</span>|<span class="code-keyword">false</span>&gt;  # <span class="code-keyword">default</span>: <span class="code-keyword">true</span>
# vocabulary.plugin._plugin_.delimiter = <span class="code-quote">"&lt;string&gt;"</span>            # <span class="code-keyword">default</span>: <span class="code-quote">"::"</span>
##
## An example using <span class="code-quote">"srsc"</span> can be found later in <span class="code-keyword">this</span> section

#plugin.selfnamed.org.dspace.content.authority.ChoiceAuthority = \
# org.dspace.content.authority.DCInputAuthority, \
# org.dspace.content.authority.DSpaceControlledVocabulary
</pre>
</div></div></li>
		<li>&#42;<b>NEW</b>&#42; Controls autocomplete for authority control
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">## demo: subject code autocomplete, using srsc as authority
## (DSpaceControlledVocabulary plugin must be enabled)
#choices.plugin.dc.subject = srsc
#choices.presentation.dc.subject = select
#vocabulary.plugin.srsc.hierarchy.store = <span class="code-keyword">true</span>
#vocabulary.plugin.srsc.hierarchy.suggest = <span class="code-keyword">true</span>
#vocabulary.plugin.srsc.delimiter = <span class="code-quote">"::"</span>
</pre>
</div></div></li>
		<li>&#42;<b>NEW</b>&#42; You are now able to order your bitstreams by sequence id or file name.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">#### Ordering of bitstreams ####

## Specify the ordering that bitstreams are listed.
##
## Bitstream field to sort on.  Values: sequence_id or name. Default: sequence_id
#webui.bitstream.order.field = <span class="code-quote">"sequence_id"</span>

## Direction of sorting order. Values: DESC or ASC. Default: ASC
#webui.bitstream.order.direction = ASC
</pre>
</div></div></li>
		<li>&#42;<b>NEW</b>&#42; DSpace now includes a metadata mapping feature that makes repository content discoverable by Google Scholar:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
##### Google Scholar Metadata Configuration #####
google-metadata.config = ${dspace.dir}/config/crosswalks/google-metadata.properties
google-metadata.enable = <span class="code-keyword">true</span>
</pre>
</div></div></li>
		<li>&#42;<b>NEW</b>&#42; XMLUI is now able to concatenate CSS, JS and JSON files:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
# Enabling <span class="code-keyword">this</span> property will concatenate CSS, JS and JSON files where possible.
# CSS files can be concatenated <span class="code-keyword">if</span> multiple CSS files with the same media attribute
# are used in the same page. Links to the CSS files are automatically referring to the
# concatenated resulting CSS file.
# The theme sitemap should be updated to use the ConcatenationReader <span class="code-keyword">for</span> all js, css and json
# files before enabling <span class="code-keyword">this</span> property.
#xmlui.theme.enableConcatenation = <span class="code-keyword">false</span>

# Enabling <span class="code-keyword">this</span> property will minify CSS, JS and JSON files where possible.
# The theme sitemap should be updated to use the ConcatenationReader <span class="code-keyword">for</span> all js, css and json
# files before enabling <span class="code-keyword">this</span> property.
#xmlui.theme.enableMinification = <span class="code-keyword">false</span>
</pre>
</div></div></li>
		<li>&#42;<b>NEW</b>&#42;  XMLUI Mirage Theme.  This is a new theme with it's own configuration:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
### Setings <span class="code-keyword">for</span> Item lists in Mirage theme ###
# What should the emphasis be in the display of item lists?
# Possible values : 'file', 'metadata'. If your repository is
# used mainly <span class="code-keyword">for</span> scientific papers 'metadata' is probably the
# best way. If you have a lot of images and other files 'file'
# will be the best starting point
# (metdata is the <span class="code-keyword">default</span> value <span class="code-keyword">if</span> <span class="code-keyword">this</span> option is not specified)
#xmlui.theme.mirage.item-list.emphasis = file</pre>
</div></div></li>
		<li>&#42;<b>NEW</b>&#42; OAI Response default change.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"># DSpace by <span class="code-keyword">default</span> uses 100 records as the limit <span class="code-keyword">for</span> the oai responses.
# This can be altered by enabling the oai.response.max-records parameter
# and setting the desired amount of results.
oai.response.max-records = 100</pre>
</div></div></li>
		<li>&#42;<b>CHANGE</b>&#42; EPDCX property key has been renamed.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"># Define the metadata type EPDCX (EPrints DC XML)
# to be handled by the SWORD crosswalk configuration
#
mets.<span class="code-keyword">default</span>.ingest.crosswalk.EPDCX = SWORD
</pre>
</div></div></li>
		<li>&#42;<b>NEW</b>&#42; New SOLR Statistic Property keys:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
# Timeout <span class="code-keyword">for</span> the resolver in the dns lookup
# Time in milliseconds, defaults to 200 <span class="code-keyword">for</span> backward compatibility
# Your systems <span class="code-keyword">default</span> is usually set in /etc/resolv.conf and varies
# between 2 to 5 seconds, to high a value might result in solr exhausting
# your connection pool
solr.resolver.timeout = 200

----

# Enable/disable logging of spiders in solr statistics.
# If <span class="code-keyword">false</span>, and IP matches an address in solr.spiderips.urls, event is not logged.
# If <span class="code-keyword">true</span>, event will be logged with the 'isBot' field set to <span class="code-keyword">true</span>
# (see solr.statistics.query.filter.* <span class="code-keyword">for</span> query filter options)
# Default value is <span class="code-keyword">true</span>.
#solr.statistics.logBots = <span class="code-keyword">true</span></pre>
</div></div></li>
	</ul>
	</li>
	<li><b>Build DSpace.</b> Run the following commands to compile DSpace.:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">cd [dspace-source]/dspace/
mvn -U clean <span class="code-keyword">package</span></pre>
</div></div>
<p> You will find the result in <tt>[dspace-source]/dspace/target/dspace-[version]-build.dir</tt> . Inside this directory is the compiled binary distribution of DSpace. Before rebuilding DSpace, the above command will clean out any previously compiled code ('clean') and ensure that your local DSpace JAR files are updated from the remote maven code repository.</p></li>
	<li><b>Update DSpace.</b> Update the DSpace installed directory with the new code and libraries. Issue the following commands:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">cd [dspace-source]/dspace/target/dspace-[version]-build.dir
ant -Dconfig=[dspace]/config/dspace.cfg update</pre>
</div></div></li>
	<li><b>Update the Database.</b> You will need to run the 1.6.x to 1.7.x database upgrade script.
	<ul>
		<li>For PostgreSQL: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">psql -U [dspace-user] -f [dspace-source]/dspace/etc/postgres/database_schema_16_17.sql [database name]</pre>
</div></div>
<p> (Your database name is by default 'dspace'). Example: </p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">psql -U dspace -f [dspace-source]/dspace/etc/postgres/database_schema_16_17.sql dspace</pre>
</div></div></li>
		<li>For Oracle: Execute the upgrade script, e.g. with sqlplus, recording the output:
		<ol>
			<li>Start SQL*Plus with <tt>sqlplus [connect args]</tt></li>
			<li>Record the output: <tt>SQL&gt; spool 'upgrade.lst'</tt></li>
			<li>Run the upgrade script <tt>SQL&gt; @[dspace-source]/dspace/etc/oracle/database_schema_16-17.sql</tt></li>
			<li>Turn off recording of output: <tt>SQL&gt; spool off</tt></li>
		</ol>
		</li>
	</ul>
	</li>
	<li><b>Generate Browse and Search Indexes</b>. It's always good policy to rebuild your search and browse indexes when upgrading to a new release. To do this, run the following command from your DSpace install directory (as the 'dspace' user):
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">[dspace]/bin/dspace index-init</pre>
</div></div></li>
	<li><b>Deploy Web Applications</b>. If your servlet container (e.g. Tomcat) is not configured to look for new web applications in your <tt>[dspace]/webapps</tt> directory, then you will need to copy the web applications files into the appropriate subdirectory of your servlet container.  For example: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">cp -R [dspace]/webapps/* [tomcat]/webapps/</pre>
</div></div></li>
	<li><b>Restart servlet container.</b> Now restart your Tomcat/Jetty/Resin server program and test out the upgrade.</li>
</ol>



<h2><a name="UpgradingaDSpaceInstallation-Upgradingfrom1.6to1.6.x"></a>Upgrading from 1.6 to 1.6.x</h2>

<p>In the notes below <tt>[dspace]</tt> refers to the install directory for your existing DSpace installation, and <tt>[dspace-source]</tt> to the source directory for DSpace 1.6.1. Whenever you see these path references, be sure to replace them with the actual path names on your local system.</p>

<ol>
	<li><b>Backup Your DSpace.</b> First, and foremost, make a complete backup of your system, including:
	<ul>
		<li>A snapshot of the database. <em>To have a "snapshot" of the PostgreSQL database, you need to shut it down during the backup. You should also have your regular PostgreSQL Backup output (using pg_dump commands).</em></li>
		<li>The asset store (<em>[dspace]/assetstore</em> by default)</li>
		<li>Your configuration files and customizations to DSpace (including any customized scripts).</li>
	</ul>
	</li>
	<li><b>Download DSpace 1.6.2</b>&nbsp;Retrieve the new DSpace 1.6.2 source code either as a download from <a href="http://www.dspace.org/latest-release/">DSpace.org</a> or check it out directly from the <a href="http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.6.2/">SVN code repository</a>. If you downloaded DSpace do not unpack it on top of your existing installation. Refer to <a href="Installation.html#Installation-Installation">Installation Instructions, Step 3</a> for unpacking directives.</li>
	<li><b>Stop Tomcat.</b> Take down your servlet container. For Tomcat, use the <em>$CATALINA/shutdown.sh</em> script. (Many installations will have a startup/shutdown script in the <em>/etc/init.d</em> or <em>/etc/rc.d</em> directories.</li>
	<li><b>Apply any customizations.</b> If you have made any local customizations to your DSpace installation they will need to be migrated over to the new DSpace. These are housed in one of the following places:
	<ul>
		<li>JSPUI modifications: <tt>[dspace-source]/dspace/modules/jspui/src/main/webapp/</tt></li>
		<li>XMLUI modifications: <tt>[dspace-source]/dspace/modules/xmlui/src/main/webapp/</tt></li>
	</ul>
	</li>
	<li><b>Update Configuration Files.</b> There are no additions to this release. So you do not have to update the configuration files.</li>
	<li><b>Build DSpace.</b> Run the following commands to compile DSpace.:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">cd /[dspace-source]/dspace/
mvn -U clean <span class="code-keyword">package</span></pre>
</div></div>
<p>You will find the result in <em>[dspace-source]/dspace/target/dspace-[version]-build.dir</em> . Inside this directory is the compiled binary distribution of DSpace. Before rebuilding DSpace, the above command will clean out any previously compiled code ('clean') and ensure that your local DSpace JAR files are updated from the remote maven repository.</p></li>
	<li><b>Update DSpace.</b> Update the DSpace installed directory with the new code and libraries. Issue the following commands:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">cd [dspace-source]/dspace/target/dspace-[version]-build.dir
ant -Dconfig=[dspace]/config/dspace.cfg update</pre>
</div></div></li>
	<li><b>Run Registry Format Update for CC License.</b> Creative Commons licenses have been assigned the wrong mime-type in past versions of DSpace. Even if you are not currently using CC Licenses, you should update your Bitstream Format Registry to include a new entry with the proper mime-type. To update your registry, run the following command: <em>dspace]/bin/dspace registry-loader &#45;bitstream [dspace]/etc/upgrades/15-16/new-bitstream-formats.xml</em></li>
	<li><b>Update the Database.</b> If you are using Creative Commons Licenses in your DSpace submission process, you will need to run the 1.5.x to 1.6.x database upgrade script again. In 1.6.0 the improper mime-type was being assigned to all CC Licenses. This has now been resolved, and rerunning the upgrade script will now assign the proper mime-type to all existing CC Licenses in your DSpace installation. NOTE: You will receive messages that most of the script additions already exist. This is normal, and nothing to be worried about.
	<ul>
		<li>For PostgreSQL: <em>psql &#45;U [dspace-user] &#45;f [dspace-source]/dspace/etc/postgres/database_schema_15-16.sql [database name]</em> (Your database name is by default 'dspace'). Example: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">psql -U dspace -f
   /dspace-1.6-1-src-release/dspace/etc/postgres/database_schema_15-16.sql dspace</pre>
</div></div>
<p><em>(The line break above is cosmetic. Please place your command in one line.</em></p></li>
		<li>For Oracle: Execute the upgrade script, e.g. with sqlplus, recording the output:
		<ol>
			<li>Start SQL*Plus with <tt>sqlplus [connect args]</tt></li>
			<li>Record the output: <tt>SQL&gt; spool 'upgrade.lst'</tt></li>
			<li>Run the upgrade script <tt>SQL&gt; @[dspace-source]/dspace/etc/oracle/database_schema_15-16.sql</tt></li>
			<li>Turn off recording of output: <tt>SQL&gt; spool off</tt></li>
			<li>Please note: The final few statements WILL FAIL. That is because you have run some queries and use the results to construct the statements to remove the constraints, manually‚ Oracle doesn't have any easy way to automate this (unless you know PL/SQL). So, look for the comment line beginning: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"><span class="code-quote">"--You need to remove the already in place constraints"</span>
and follow the instructions in the actual SQL file.
Refer to the contents of the spool file <span class="code-quote">"upgrade.lst"</span> <span class="code-keyword">for</span>
the output of the queries you'll need.</pre>
</div></div></li>
		</ol>
		</li>
	</ul>
	</li>
	<li><b>Generate Browse and Search Indexes</b>. Though there are not any database changes in the 1.6 to 1.6.1 release, it makes good policy to rebuild your search and browse indexes when upgrading to a new release. To do this, run the following command from your DSpace install directory (as the dspace user):<em>[dspace]/bin/dspace index-init</em></li>
	<li><b>Deploy Web Applications</b>. Copy the web applications files from your <em>[dspace]/webapps</em> directory to the subdirectory of your servlet container (e.g. tomcat):<em>cp &#45;R [dspace]/webapps/&#42; [tomcat]/webapps/</em></li>
	<li><b>Restart servlet.</b> Now restart your Tomcat/Jetty/Resin server program and test out the upgrade.</li>
</ol>


<h2><a name="UpgradingaDSpaceInstallation-Upgradingfrom1.5.xto1.6.x"></a>Upgrading from 1.5.x to 1.6.x</h2>

<p>In the notes below <tt>[dspace]</tt> refers to the install directory for your existing DSpace installation, and <em>[dspace-source]</em> to the source directory for DSpace 1.6. Whenever you see these path references, be sure to replace them with the actual path names on your local system.</p>

<ol>
	<li><b>Backup Your DSpace.</b> First, and foremost, make a complete backup of your system, including:
	<ul>
		<li>A snapshot of the database. &#95;To have a "snapshot" of the PostgreSQL database, you need to shut it down during the backup. You should also have your regular PostgreSQL Backup output (using pg_dump commands). _</li>
		<li>The asset store (<em>[dspace]/assetstore</em> by default)</li>
		<li>Your configuration files and customizations to DSpace (including any customized scripts).</li>
	</ul>
	</li>
	<li><b>Download DSpace 1.6.x</b> Retrieve the new DSpace 1.6.x source code either as a download from <a href="http://www.dspace.org/latest-release/">DSpace.org</a> or check it out directly from the <a href="http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.6.2/">SVN code repository</a>. If you downloaded DSpace do not unpack it on top of your existing installation. Refer to <a href="Installation.html#Installation-Installation">Installation Instructions, Step 3</a> for unpacking directives.</li>
	<li><b>Stop Tomcat</b>. Take down your servlet container. For Tomcat, use the <em>$CATALINA/shutdown.sh</em> script. (Many installations will have a startup/shutdown script in the <em>/etc/init.d</em> or <em>/etc/rc.d</em> directories.</li>
	<li><b>Apply any customizations</b>. If you have made any local customizations to your DSpace installation they will need to be migrated over to the new DSpace. These are housed in one of the following places:
	<ul>
		<li>JSPUI modifications: <tt>[dspace-source]/dspace/modules/jspui/src/main/webapp/</tt></li>
		<li>XMLUI modifications: <tt>[dspace-source]/dspace/modules/xmlui/src/main/webapp/</tt></li>
	</ul>
	</li>
	<li><b>Update Configuration Files</b>. Some of the parameters have change and some are new. Changes will be noted below:
	<ul>
		<li>&#42;&#42;<b>CHANGE</b>&#42;&#42; The base url and oai urls property keys are set differently 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"># DSpace host name - should match base URL.  Do not include port number
dspace.hostname = localhost

# DSpace base host URL.  Include port number etc.
dspace.baseUrl = http:<span class="code-comment">//localhost:8080
</span>
# DSpace base URL.  Include port number etc., but NOT trailing slash
# Change to xmlui <span class="code-keyword">if</span> you wish to use the xmlui as the <span class="code-keyword">default</span>, or remove
# <span class="code-quote">"/jspui"</span> and set webapp of your choice as the <span class="code-quote">"ROOT"</span> webapp in
# the servlet engine.
dspace.url = ${dspace.baseUrl}/xmlui

# The base URL of the OAI webapp (<span class="code-keyword">do</span> not include /request).
dspace.oai.url = ${dspace.baseUrl}/oai</pre>
</div></div></li>
		<li>&#42;&#42;<b>NEW</b>&#42;&#42; New email options (Add these at the end of the "Email Settings" sub-section):
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"># A comma separated list of hostnames that are allowed to refer browsers to
# email forms. Default behavior is to accept referrals only from
# dspace.hostname
#mail.allowed.referrers = localhost

# Pass extra settings to the Java mail library. Comma separated, equals sign
# between the key and the value.
#mail.extraproperties = mail.smtp.socketFactory.port=465, \
#                mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory, \
#                mail.smtp.socketFactory.fallback=<span class="code-keyword">false</span>

# An option is added to disable the mailserver. By <span class="code-keyword">default</span>, <span class="code-keyword">this</span> property is
# set to <span class="code-keyword">false</span>. By setting mail.server.disabled = <span class="code-keyword">true</span>, DSpace will not send
# out emails. It will instead log the subject of the email which should have
# been sent. This is especially useful <span class="code-keyword">for</span> development and test environments
# where production data is used when testing functionality.
#mail.server.disabled = <span class="code-keyword">false</span>
</pre>
</div></div></li>
		<li>&#42;&#42;<b>NEW</b>&#42;*New Authorization levels and parameters. See the <a href="Configuration.html" title="Configuration">Configuration</a> documentation, "Delegation Administration" section for further information.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">##### Authorization system configuration - Delegate ADMIN #####

# COMMUNITY ADMIN configuration
# subcommunities and collections
#core.authorization.community-admin.create-subelement = <span class="code-keyword">true</span>
#core.authorization.community-admin.delete-subelement = <span class="code-keyword">true</span>
# his community
#core.authorization.community-admin.policies = <span class="code-keyword">true</span>
#core.authorization.community-admin.admin-group = <span class="code-keyword">true</span>
# collections in his community
#core.authorization.community-admin.collection.policies = <span class="code-keyword">true</span>
#core.authorization.community-admin.collection.template-item = <span class="code-keyword">true</span>
#core.authorization.community-admin.collection.submitters = <span class="code-keyword">true</span>
#core.authorization.community-admin.collection.workflows = <span class="code-keyword">true</span>
#core.authorization.community-admin.collection.admin-group = <span class="code-keyword">true</span>
# item owned by collections in his community
#core.authorization.community-admin.item.delete = <span class="code-keyword">true</span>
#core.authorization.community-admin.item.withdraw = <span class="code-keyword">true</span>
#core.authorization.community-admin.item.reinstatiate = <span class="code-keyword">true</span>
#core.authorization.community-admin.item.policies = <span class="code-keyword">true</span>
# also bundle...
#core.authorization.community-admin.item.create-bitstream = <span class="code-keyword">true</span>
#core.authorization.community-admin.item.delete-bitstream = <span class="code-keyword">true</span>
#core.authorization.community-admin.item-admin.cc-license = <span class="code-keyword">true</span>

# COLLECTION ADMIN
#core.authorization.collection-admin.policies = <span class="code-keyword">true</span>
#core.authorization.collection-admin.template-item = <span class="code-keyword">true</span>
#core.authorization.collection-admin.submitters = <span class="code-keyword">true</span>
#core.authorization.collection-admin.workflows = <span class="code-keyword">true</span>
#core.authorization.collection-admin.admin-group = <span class="code-keyword">true</span>
# item owned by his collection
#core.authorization.collection-admin.item.delete = <span class="code-keyword">true</span>
#core.authorization.collection-admin.item.withdraw = <span class="code-keyword">true</span>
#core.authorization.collection-admin.item.reinstatiate = <span class="code-keyword">true</span>
#core.authorization.collection-admin.item.policies = <span class="code-keyword">true</span>
# also bundle...
#core.authorization.collection-admin.item.create-bitstream = <span class="code-keyword">true</span>
#core.authorization.collection-admin.item.delete-bitstream = <span class="code-keyword">true</span>
#core.authorization.collection-admin.item-admin.cc-license = <span class="code-keyword">true</span>

# ITEM ADMIN
#core.authorization.item-admin.policies = <span class="code-keyword">true</span>
# also bundle...
#core.authorization.item-admin.create-bitstream = <span class="code-keyword">true</span>
#core.authorization.item-admin.delete-bitstream = <span class="code-keyword">true</span>
#core.authorization.item-admin.cc-license = <span class="code-keyword">true</span></pre>
</div></div></li>
		<li>&#42;&#42;<b>CHANGE</b>&#42;&#42; METS ingester has been revised. (Modify In "<em>Crosswalk and Packager Plugin Settings</em>")
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"># Option to make use of collection templates when using the METS ingester (<span class="code-keyword">default</span> is <span class="code-keyword">false</span>)
mets.submission.useCollectionTemplate = <span class="code-keyword">false</span>

# Crosswalk Plugins:
plugin.named.org.dspace.content.crosswalk.IngestionCrosswalk = \
  org.dspace.content.crosswalk.PREMISCrosswalk = PREMIS \
  org.dspace.content.crosswalk.OREIngestionCrosswalk = ore \
  org.dspace.content.crosswalk.NullIngestionCrosswalk = NIL \
  org.dspace.content.crosswalk.QDCCrosswalk = qdc \
  org.dspace.content.crosswalk.OAIDCIngestionCrosswalk = dc \
  org.dspace.content.crosswalk.DIMIngestionCrosswalk = dim

plugin.selfnamed.org.dspace.content.crosswalk.IngestionCrosswalk = \
  org.dspace.content.crosswalk.XSLTIngestionCrosswalk

plugin.named.org.dspace.content.crosswalk.DisseminationCrosswalk = \
  org.dspace.content.crosswalk.SimpleDCDisseminationCrosswalk = DC \
  org.dspace.content.crosswalk.SimpleDCDisseminationCrosswalk = dc \
  org.dspace.content.crosswalk.PREMISCrosswalk = PREMIS \
  org.dspace.content.crosswalk.METSDisseminationCrosswalk = METS \
  org.dspace.content.crosswalk.METSDisseminationCrosswalk = mets \
  org.dspace.content.crosswalk.OREDisseminationCrosswalk = ore \
  org.dspace.content.crosswalk.QDCCrosswalk = qdc \
  org.dspace.content.crosswalk.DIMDisseminationCrosswalk = dim</pre>
</div></div></li>
		<li>&#42;&#42;<b>CHANGE</b>&#42;&#42; Event Settings have had the following revision with the addition of 'harvester' (modify in "<em>Event System Configuration</em>"):
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">#### Event <span class="code-object">System</span> Configuration ####

# <span class="code-keyword">default</span> synchronous dispatcher (same behavior as traditional DSpace)
event.dispatcher.<span class="code-keyword">default</span>.class = org.dspace.event.BasicDispatcher
event.dispatcher.<span class="code-keyword">default</span>.consumers = search, browse, eperson, harvester</pre>
</div></div>
<p>also: </p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"># consumer to clean up harvesting data
event.consumer.harvester.class = org.dspace.harvest.HarvestConsumer
event.consumer.harvester.filters = Item+Delete
</pre>
</div></div></li>
		<li>&#42;&#42;<b>NEW</b>&#42;&#42; New option for the Embargo of Thesis and Dissertations.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">#### Embargo Settings ####
# DC metadata field to hold the user-supplied embargo terms
embargo.field.terms = SCHEMA.ELEMENT.QUALIFIER

# DC metadata field to hold computed <span class="code-quote">"lift date"</span> of embargo
embargo.field.lift = SCHEMA.ELEMENT.QUALIFIER

# string in terms field to indicate indefinite embargo
embargo.terms.open = forever

# implementation of embargo setter plugin--replace with local implementation <span class="code-keyword">if</span>
# applicable
plugin.single.org.dspace.embargo.EmbargoSetter = \
				org.dspace.embargo.DefaultEmbargoSetter

# implementation of embargo lifter plugin--replace with local implementation <span class="code-keyword">if</span>
# applicable
plugin.single.org.dspace.embargo.EmbargoLifter = \
				org.dspace.embargo.DefaultEmbargoLifter</pre>
</div></div></li>
		<li>&#42;&#42;<b>NEW</b>&#42;&#42; New option for using the Batch Editing capabilities. See <a href="Configuration.html#Configuration-BatchMetadataEditing">Batch Metadata Editing Configuration</a> and also <a href="System Administration.html#SystemAdministration-BatchMetadataEditing">System Administration : Batch Metadata Editing</a> 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">### Bulk metadata editor settings ###
# The delimiter used to separate values within a single field (defaults to a <span class="code-object">double</span> pipe ||)
# bulkedit.valueseparator = ||

# The delimiter used to separate fields (defaults to a comma <span class="code-keyword">for</span> CSV)
# bulkedit.fieldseparator = ,

# A hard limit of the number of items allowed to be edited in one go in the UI
# (does not apply to the command line version)
# bulkedit.gui-item-limit = 20

# Metadata elements to exclude when exporting via the user interfaces, or when
# using the command line version and not using the -a (all) option.
# bulkedit.ignore-on-export = dc.date.accessioned, dc.date.available, \
#                             dc.date.updated, dc.description.provenance</pre>
</div></div></li>
		<li>&#42;&#42;<b>NEW</b>&#42;&#42; Ability to hide metadata fields is now available. (Look for "<em>JSPUI &amp; XMLUI Configurations</em>" Section)
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">##### Hide Item Metadata Fields  #####
# Fields named here are hidden in the following places UNLESS the
# logged-in user is an Administrator:
#  1. XMLUI metadata XML view, and Item splash pages (<span class="code-object">long</span> and <span class="code-object">short</span> views).
#  2. JSPUI Item splash pages
#  3. OAI-PMH server, <span class="code-quote">"oai_dc"</span> format.
#     (NOTE: Other formats are _not_ affected.)
# To designate a field as hidden, add a property here in the form:
#    metadata.hide.SCHEMA.ELEMENT.QUALIFIER = <span class="code-keyword">true</span>
#
# This <span class="code-keyword">default</span> configuration hides the dc.description.provenance field,
# since that usually contains email addresses which ought to be kept
# <span class="code-keyword">private</span> and is mainly of interest to administrators:
metadata.hide.dc.description.provenance = <span class="code-keyword">true</span>
</pre>
</div></div></li>
		<li>&#42;&#42;<b>NEW</b>&#42;*Choice Control and Authority Control options are available (Look for "<em>JSPUI &amp; XMLUI Configurations</em>" Section):
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">## example of authority-controlled browse category--see authority control config
#webui.browse.index.5 = lcAuthor:metadataAuthority:dc.contributor.author:authority
</pre>
</div></div>
<p>And also: </p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">#####  Authority Control Settings  #####

#plugin.named.org.dspace.content.authority.ChoiceAuthority = \
# org.dspace.content.authority.SampleAuthority = Sample, \
# org.dspace.content.authority.LCNameAuthority = LCNameAuthority, \
# org.dspace.content.authority.SHERPARoMEOPublisher = SRPublisher, \
# org.dspace.content.authority.SHERPARoMEOJournalTitle = SRJournalTitle

## This ChoiceAuthority plugin is automatically configured with every
## value-pairs element in input-forms.xml, namely:
##   common_identifiers, common_types, common_iso_languages
#plugin.selfnamed.org.dspace.content.authority.ChoiceAuthority = \
# org.dspace.content.authority.DCInputAuthority

## configure LC Names plugin
#lcname.url = http:<span class="code-comment">//alcme.oclc.org/srw/search/lcnaf
</span>
## configure SHERPA/RoMEO authority plugin
#sherpa.romeo.url = http:<span class="code-comment">//www.sherpa.ac.uk/romeo/api24.php
</span>
##
## This sets the <span class="code-keyword">default</span> lowest confidence level at which a metadata value is included
## in an authority-controlled browse (and search) index.  It is a symbolic
## keyword, one of the following values (listed in descending order):
##   accepted
##   uncertain
##   ambiguous
##   notfound
##   failed
##   rejected
##   novalue
##   unset
## See manual or org.dspace.content.authority.Choices source <span class="code-keyword">for</span> descriptions.
authority.minconfidence = ambiguous

## demo: use LC plugin <span class="code-keyword">for</span> author
#choices.plugin.dc.contributor.author =  LCNameAuthority
#choices.presentation.dc.contributor.author = lookup
#authority.controlled.dc.contributor.author = <span class="code-keyword">true</span>
##
## This sets the lowest confidence level at which a metadata value is included
## in an authority-controlled browse (and search) index.  It is a symbolic
## keyword from the same set as <span class="code-keyword">for</span> the <span class="code-keyword">default</span> <span class="code-quote">"authority.minconfidence"</span>
#authority.minconfidence.dc.contributor.author = accepted


## Demo: publisher name lookup through SHERPA/RoMEO:
#choices.plugin.dc.publisher = SRPublisher
#choices.presentation.dc.publisher = suggest

## demo: journal title lookup, with ISSN as authority
#choices.plugin.dc.title.alternative = SRJournalTitle
#choices.presentation.dc.title.alternative = suggest
#authority.controlled.dc.title.alternative = <span class="code-keyword">true</span>

## demo: use choice authority (without authority-control) to restrict dc.type on EditItemMetadata page
# choices.plugin.dc.type = common_types
# choices.presentation.dc.type = select

## demo: same idea <span class="code-keyword">for</span> dc.language.iso
# choices.plugin.dc.language.iso = common_iso_languages
# choices.presentation.dc.language.iso = select

# Change number of choices shown in the select in Choices lookup popup
#xmlui.lookup.select.size = 12</pre>
</div></div></li>
		<li>&#42;&#42;<b>REPLACE</b>&#42;&#42; RSS Feeds now support Atom 1.0. <em>Replace its previous configuration with the one below:</em>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">#### Syndication Feed (RSS) Settings ######

# enable syndication feeds - links display on community and collection home pages
# (This setting is not used by XMLUI, as you enable feeds in your theme)
webui.feed.enable = <span class="code-keyword">false</span>
# number of DSpace items per feed (the most recent submissions)
webui.feed.items = 4
# maximum number of feeds in memory cache
# value of 0 will disable caching
webui.feed.cache.size = 100
# number of hours to keep cached feeds before checking currency
# value of 0 will force a check with each request
webui.feed.cache.age = 48
# which syndication formats to offer
# use one or more (comma-separated) values from list:
# rss_0.90, rss_0.91, rss_0.92, rss_0.93, rss_0.94, rss_1.0, rss_2.0
webui.feed.formats = rss_1.0,rss_2.0,atom_1.0
# URLs returned by the feed will point at the global handle server (e.g. http:<span class="code-comment">//hdl.handle.net/123456789/1)
</span># Set to <span class="code-keyword">true</span> to use local server URLs (i.e. http:<span class="code-comment">//myserver.myorg/handle/123456789/1)
</span>webui.feed.localresolve = <span class="code-keyword">false</span>

# Customize each single-value field displayed in the
# feed information <span class="code-keyword">for</span> each item.  Each of
# the below fields takes a *single* metadata field
#
# The form is &lt;schema prefix&gt;.&lt;element&gt;[.&lt;qualifier&gt;|.*]
webui.feed.item.title = dc.title
webui.feed.item.date = dc.date.issued

# Customize the metadata fields to show in the feed <span class="code-keyword">for</span> each item's description.
# Elements will be displayed in the order that they are specified here.
#
# The form is &lt;schema prefix&gt;.&lt;element&gt;[.&lt;qualifier&gt;|.*][(date)], ...
#
# Similar to the item display UI, the name of the field <span class="code-keyword">for</span> display
# in the feed will be drawn from the current UI dictionary,
# using the key:
# <span class="code-quote">"metadata.&lt;field&gt;"</span>
#
# e.g.   <span class="code-quote">"metadata.dc.title"</span>
#        <span class="code-quote">"metadata.dc.contributor.author"</span>
#        <span class="code-quote">"metadata.dc.date.issued"</span>
webui.feed.item.description = dc.title, dc.contributor.author, \
               dc.contributor.editor, dc.description.<span class="code-keyword">abstract</span>, \
               dc.description
# name of field to use <span class="code-keyword">for</span> authors (Atom only) - repeatable
webui.feed.item.author = dc.contributor.author

# Customize the extra namespaced DC elements added to the item (RSS) or entry
# (Atom) element.  These let you include individual metadata values in a
# structured format <span class="code-keyword">for</span> easy extraction by the recipient, instead of (or in
# addition to) appending these values to the Description field.
## dc:creator value(s)
#webui.feed.item.dc.creator = dc.contributor.author
## dc:date value (may be contradicted by webui.feed.item.date)
#webui.feed.item.dc.date = dc.date.issued
## dc:description (e.g. <span class="code-keyword">for</span> a distinct field that is ONLY the <span class="code-keyword">abstract</span>)
#webui.feed.item.dc.description = dc.description.<span class="code-keyword">abstract</span>

# Customize the image icon included with the site-wide feeds:
# Must be an absolute URL, e.g.
## webui.feed.logo.url = ${dspace.url}/themes/mysite/images/mysite-logo.png</pre>
</div></div></li>
		<li>&#42;&#42;<b>NEW</b>&#42;&#42; Opensearch Feature is new to DSpace
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">#### OpenSearch Settings ####
# NB: <span class="code-keyword">for</span> result data formatting, OpenSearch uses Syndication Feed Settings
# so even <span class="code-keyword">if</span> Syndication Feeds are not enabled, they must be configured
# enable open search
websvc.opensearch.enable = <span class="code-keyword">false</span>
# context <span class="code-keyword">for</span> html request URLs - change only <span class="code-keyword">for</span> non-standard servlet mapping
websvc.opensearch.uicontext = simple-search
# context <span class="code-keyword">for</span> RSS/Atom request URLs - change only <span class="code-keyword">for</span> non-standard servlet mapping
websvc.opensearch.svccontext = open-search/
# present autodiscovery link in every page head
websvc.opensearch.autolink = <span class="code-keyword">true</span>
# number of hours to retain results before recalculating
websvc.opensearch.validity = 48
# <span class="code-object">short</span> name used in browsers <span class="code-keyword">for</span> search service
# should be 16 or fewer characters
websvc.opensearch.shortname = DSpace
# longer (up to 48 characters) name
websvc.opensearch.longname = ${dspace.name}
# brief service description
websvc.opensearch.description = ${dspace.name} DSpace repository
# location of favicon <span class="code-keyword">for</span> service, <span class="code-keyword">if</span> any must be 16X16 pixels
websvc.opensearch.faviconurl = http:<span class="code-comment">//www.dspace.org/images/favicon.ico
</span># sample query - should <span class="code-keyword">return</span> results
websvc.opensearch.samplequery = photosynthesis
# tags used to describe search service
websvc.opensearch.tags = IR DSpace
# result formats offered - use 1 or more comma-separated from: html,atom,rss
# NB: html is required <span class="code-keyword">for</span> autodiscovery in browsers to function,
# and must be the first in the list <span class="code-keyword">if</span> present
websvc.opensearch.formats = html,atom,rss</pre>
</div></div></li>
		<li>&#42;&#42;<b>NEW</b>&#42; &#42;Exposure of METS metadata can be now hidden. (See "<em>OAI-PMH SPECIFIC CONFIGURATIONS</em>" in the <em>dspace.cfg</em> file)
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"># When exposing METS/MODS via OAI-PMH all metadata that can be mapped to MODS
# is exported. This includes description.provenance which can contain personal
# email addresses and other information not intended <span class="code-keyword">for</span> <span class="code-keyword">public</span> consumption. To
# hide <span class="code-keyword">this</span> information set the following property to <span class="code-keyword">true</span>
oai.mets.hide-provenance = <span class="code-keyword">true</span>
</pre>
</div></div></li>
		<li>&#42;&#42;<b>NEW</b>&#42; &#42;SWORD has added the following to accept MIME/types. (See "<em>SWORD Specific Configurations</em>" Section)
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"># A comma separated list of MIME types that SWORD will accept
sword.accepts = application/zip
</pre>
</div></div></li>
		<li>&#42;&#42;<b>NEW</b>&#42; &#42;New OAI Harvesting Configuration settings are now available. (See "<em>OAI Harvesting Configurations</em>"
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">#---------------------------------------------------------------#
#--------------OAI HARVESTING CONFIGURATIONS--------------------#
#---------------------------------------------------------------#
# These configs are only used by the OAI-ORE related functions  #
#---------------------------------------------------------------#

### Harvester settings

# Crosswalk settings; the {name} value must correspond to a declared ingestion crosswalk
# harvester.oai.metadataformats.{name} = {namespace},{optional display name}
harvester.oai.metadataformats.dc = http:<span class="code-comment">//www.openarchives.org/OAI/2.0/oai_dc/, Simple Dublin Core
</span>harvester.oai.metadataformats.qdc = http:<span class="code-comment">//purl.org/dc/terms/, Qualified Dublin Core
</span>harvester.oai.metadataformats.dim = http:<span class="code-comment">//www.dspace.org/xmlns/dspace/dim, DSpace Intermediate Metadata
</span>
# This field works in much the same way as harvester.oai.metadataformats.PluginName
# The {name} must correspond to a declared ingestion crosswalk, <span class="code-keyword">while</span> the
# {namespace} must be supported by the target OAI-PMH provider when harvesting content.
# harvester.oai.oreSerializationFormat.{name} = {namespace}

# Determines whether the harvester scheduling process should be started
# automatically when the DSpace webapp is deployed.
# <span class="code-keyword">default</span>: <span class="code-keyword">false</span>
harvester.autoStart=<span class="code-keyword">false</span>

# Amount of time subtracted from the from argument of the PMH request to account
# <span class="code-keyword">for</span> the time taken to negotiate a connection. Measured in seconds. Default value is 120.
#harvester.timePadding = 120

# How frequently the harvest scheduler checks the remote provider <span class="code-keyword">for</span> updates,
# measured in minutes. The <span class="code-keyword">default</span> value is 12 hours (or 720 minutes)
#harvester.harvestFrequency = 720

# The heartbeat is the frequency at which the harvest scheduler queries the local
# database to determine <span class="code-keyword">if</span> any collections are due <span class="code-keyword">for</span> a harvest cycle (based on
# the harvestFrequency) value. The scheduler is optimized to then sleep until the
# next collection is actually ready to be harvested. The minHeartbeat and
# maxHeartbeat are the lower and upper bounds on <span class="code-keyword">this</span> timeframe. Measured in seconds.
# Default minHeartbeat is 30.  Default maxHeartbeat is 3600.
#harvester.minHeartbeat = 30
#harvester.maxHeartbeat = 3600

# How many harvest process threads the scheduler can spool up at once. Default value is 3.
#harvester.maxThreads = 3

# How much time passes before a harvest thread is terminated. The termination process
# waits <span class="code-keyword">for</span> the current item to complete ingest and saves progress made up to that point.
# Measured in hours. Default value is 24.
#harvester.threadTimeout = 24

# When harvesting an item that contains an unknown schema or field within a schema what
# should the harvester <span class="code-keyword">do</span>? Either add a <span class="code-keyword">new</span> registry item <span class="code-keyword">for</span> the field or schema, ignore
# the specific field or schema (importing everything <span class="code-keyword">else</span> about the item), or fail with
# an error. The <span class="code-keyword">default</span> value <span class="code-keyword">if</span> undefined is: fail.
# Possible values: 'fail', 'add', or 'ignore'
harvester.unknownField  = add
harvester.unknownSchema = fail

# The webapp responsible <span class="code-keyword">for</span> minting the URIs <span class="code-keyword">for</span> ORE Resource Maps.
# If using oai, the dspace.oai.uri config value must be set.
# The URIs generated <span class="code-keyword">for</span> ORE ReMs follow the following convention <span class="code-keyword">for</span> both cases.
# format: [baseURI]/metadata/handle/[theHandle]/ore.xml
# Default value is oai
#ore.authoritative.source = oai

# A harvest process will attempt to scan the metadata of the incoming items
# (dc.identifier.uri field, to be exact) to see <span class="code-keyword">if</span> it looks like a handle.
# If so, it matches the pattern against the values of <span class="code-keyword">this</span> parameter.
# If there is a match the <span class="code-keyword">new</span> item is assigned the handle from the metadata value
# instead of minting a <span class="code-keyword">new</span> one. Default value: hdl.handle.net
#harvester.acceptedHandleServer = hdl.handle.net, handle.myu.edu

# Pattern to reject as an invalid handle prefix (known test string, <span class="code-keyword">for</span> example)
# when attempting to find the handle of harvested items. If there is a match with
# <span class="code-keyword">this</span> config parameter, a <span class="code-keyword">new</span> handle will be minted instead. Default value: 123456789.
#harvester.rejectedHandlePrefix = 123456789, myTestHandle
						</pre>
</div></div></li>
		<li>&#42;&#42;<b>NEW</b>&#42;&#42; SOLR Statistics Configurations. For a little more detailed information regarding the configuration, please refer to <a href="Configuration.html#Configuration-DSpaceSOLRStatisticsConfiguration">DSpace SOLR Statistics Configuration</a> ; or, for installation procedures, refer to <a href="Installation.html#Installation-DSpaceStatistics">Advanced Installation: Dspace Statistics</a>.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
#---------------------------------------------------------------#
#--------------SOLR STATISTICS CONFIGURATIONS-------------------#
#---------------------------------------------------------------#
# These configs are only used by the SOLR <span class="code-keyword">interface</span>/webapp to   #
# track usage statistics.                                       #
#---------------------------------------------------------------#

##### Usage Logging #####
solr.log.server = ${dspace.baseUrl}/solr/statistics
solr.spidersfile = ${dspace.dir}/config/spiders.txt
solr.dbfile = ${dspace.dir}/config/GeoLiteCity.dat
useProxies = <span class="code-keyword">true</span>

statistics.item.authorization.admin=<span class="code-keyword">true</span></pre>
</div></div></li>
	</ul>
	</li>
	<li><b>Build DSpace.</b> Run the following commands to compile DSpace.:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">cd /[dspace-source]/dspace/
mvn -U clean <span class="code-keyword">package</span></pre>
</div></div>
<p>You will find the result in <em>[dspace-source]/dspace/target/dspace-[version]-build.dir</em> . Inside this directory is the compiled binary distribution of DSpace.Before rebuilding DSpace, the above command will clean out any previously compiled code ('clean') and ensure that your local DSpace JAR files are updated from the remote maven repository.</p></li>
	<li><b>Update the database</b>. The database schema needs to be updated to accommodate changes to the database. SQL files contain the relevant updates are provided. Please note that if you have made any local customizations to the database schema, you should consult these updates and make sure they will work for you.
	<ul>
		<li>For PostgreSQL: <tt>psql &#45;U [dspace-user] &#45;f [dspace-source]/dspace/etc/postgres/database_schema_15-16.sql [database name]</tt> (Your database name is by default 'dspace'). Example: <tt>psql &#45;U dspace &#45;f /dspace-1.6-1-src-release/dspace/etc/postgres/database_schema_15-16.sql dspace</tt></li>
		<li>For Oracle: Execute the upgrade script, e.g. with sqlplus, recording the output:
		<ol>
			<li>Start SQL*Plus with <tt>sqlplus [connect args]</tt></li>
			<li>Record the output: <tt>SQL&gt; spool 'upgrade.lst'</tt></li>
			<li>Run the upgrade script <tt>SQL&gt; @[dspace-source]/dspace/etc/oracle/database_schema_15-16.sql</tt></li>
			<li>Turn off recording of output: <tt>SQL&gt; spool off</tt></li>
			<li>Please note: The final few statements WILL FAIL. That is because you have run some queries and use the results to construct the statements to remove the constraints, manually‚ Oracle doesn't have any easy way to automate this (unless you know PL/SQL). So, look for the comment line beginning: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"><span class="code-quote">"--You need to remove the already in place constraints"</span>
and follow the instructions in the actual SQL file.
Refer to the contents of the spool file <span class="code-quote">"upgrade.lst"</span> <span class="code-keyword">for</span>
the output of the queries you'll need.</pre>
</div></div></li>
		</ol>
		</li>
	</ul>
	</li>
	<li><b>Update DSpace</b>. Update the DSpace installed directory with the new code and libraries. Issue the following commands:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">cd [dspace-source]/dspace/target/dspace-[version]-build.dir
ant -Dconfig=[dspace]/config/dspace.cfg update</pre>
</div></div></li>
	<li><b>Update Registry for the CC License.</b> If you use the CC License, an incorrect mime-type type is being assigned. You will need to run the following step: &#95;dspace]/bin/dspace registry-loader &#45;bitstream [dspace]/etc/upgrades/15-16/new-bitstream-formats.xml _</li>
	<li><b>Generate Browse and Search Indexes</b>. It makes good policy to rebuild your search and browse indexes when upgrading to a new release. Almost every release has database changes and indexes can be affected by this. In the DSpace 1.6 release there is Authority Control features and those will need the indexes to be regenerated. To do this, run the following command from your DSpace install directory (as the dspace user):<em>[dspace]/bin/dspace index-init</em></li>
	<li><b>Deploy Web Applications</b>. Copy the web applications files from your <em>[dspace]/webapps</em> directory to the subdirectory of your servlet container (e.g. tomcat):<em>cp &#45;R [dspace]/webapps/&#42; [tomcat]/webapps/</em></li>
	<li><b>Restart servlet.</b> Now restart your Tomcat/Jetty/Resin server program and test out the upgrade.</li>
	<li><b>Rolling Log Appender Upgrade</b>. You will want to upgrade your logs to the new format to use the SOLR Statistics now included with DSpace. While the commands for this are found in Chapter 8, here is the steps needed to be performed.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">[dspace]/bin/dspace stats-log-converter -i input file name -o output file name -m (<span class="code-keyword">if</span> you have more than one dspace.log file)
[dspace]/bin/dspace stats-log-importer -i input file name (probably the output name from above) -m
</pre>
</div></div>
<p>The user is highly recommend to see the <a href="System Administration.html#SystemAdministration-DSpaceLogConverter">System Administration : DSpace Log Converter</a> documentation.</p></li>
</ol>


<h2><a name="UpgradingaDSpaceInstallation-UpgradingFrom1.5or1.5.1to1.5.2"></a>Upgrading From 1.5 or 1.5.1 to 1.5.2</h2>

<p>The changes in DSpace 1.5.2 do not include any database schema upgrades, and the upgrade should be straightforward.</p>

<p>In the notes below <tt>[dspace]</tt> refers to the install directory for your existing DSpace installation, and <em>[dspace-source]</em> to the source directory for DSpace 1.5. Whenever you see these path references, be sure to replace them with the actual path names on your local system.</p>

<ol>
	<li><b>Backup your DSpace</b> First and foremost, make a complete backup of your system, including:
	<ul>
		<li>A snapshot of the database</li>
		<li>The asset store (<em>[dspace]/assetstore</em> by default)</li>
		<li>Your configuration files and customizations to DSpace</li>
		<li>Your statistics scripts (<em>[dspace]/bin/stat&#42;</em>) which contain customizable dates</li>
	</ul>
	</li>
	<li><b>Download DSpace 1.5.2</b> Get the new DSpace 1.5.2 source code either as a download from <a href="http://www.dspace.org/latest-release/">DSpace.org</a> or check it out directly from the <a href="http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.5.2/">SVN code repository</a>. If you downloaded DSpace do not unpack it on top of your existing installation.</li>
	<li><b>Build DSpace</b> Run the following commands to compile DSpace.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
  cd [dspace-source]/dspace/
  mvn <span class="code-keyword">package</span>
</pre>
</div></div>
<p>You will find the result in <em>[dspace-source]/dspace/target/dspace-1.5.2-build.dir/</em>; inside this directory is the compiled binary distribution of DSpace.</p></li>
	<li><b>Stop Tomcat</b> Take down your servlet container, for Tomcat use the <em>bin/shutdown.sh</em> script.</li>
	<li><b>Apply any customizations</b> If you have made any local customizations to your DSpace installation they will need to be migrated over to the new DSpace. Commonly these modifications are made to "JSP" pages located inside the <em>[dspace 1.4.2]/jsp/local</em> directory. These should be moved <em>[dspace-source]/dspace/modules/jspui/src/main/webapp/</em> in the new build structure. See Customizing the JSP Pages for more information.</li>
	<li><b>Update DSpace</b> Update the DSpace installed directory with new code and libraries. Inside the <em>[dspace-source]/dspace/target/dspace-1.5-build.dir/</em> directory run:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cd [dspace-source]/dspace/target/dspace-1.5-build.dir/
ant -Dconfig=[dspace]/config/dspace.cfg update
</pre>
</div></div></li>
	<li><b>Update configuration files</b> This ant target preserves existing files in <em>[dspace]/config _ and will copy any new configuration files in place. If an existing file prevents copying the new file in place, the new file will have the suffix &#95;.new</em>, for example <em>[dspace]/local/dspace.cfg.new</em>. Note: there is also a configuration option <em>&#45;Doverwrite=true</em> which will instead copy the conflicting target files to &#42;.old suffixes and overwrite target file then with the new file (essentially the opposite) this is beneficial for developers and those who use the <em>[dspace-source]/dspace/config</em> to maintain their changes.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cd [dspace-source]/dspace/target/dspace-1.5-build.dir/
ant -Dconfig=[dspace]/config/dspace.cfg update_configs
</pre>
</div></div>
<p>You must then verify that you've merged and differenced in the <em>[dspace]/config/&#42;</em><b><em>/</em></b><em>.new</em> files into your configuration.Some of the new parameters you should look out for in dspace.cfg include:</p>
	<ul>
		<li>New option to restrict the expose of private items. The following needs to be added to dspace.cfg: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
#### Restricted item visibility settings ###
# By <span class="code-keyword">default</span> RSS feeds, OAI-PMH and subscription emails will include ALL items
# regardless of permissions set on them.
#
# If you wish to only expose items through these channels where the ANONYMOUS
# user is granted READ permission, then set the following options to <span class="code-keyword">false</span>
#harvest.includerestricted.rss = <span class="code-keyword">true</span>
#harvest.includerestricted.oai = <span class="code-keyword">true</span>
#harvest.includerestricted.subscription = <span class="code-keyword">true</span>
</pre>
</div></div></li>
		<li>Special groups for LDAP and password authentication. 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
##### Password users group #####

# If required, a group name can be given here, and all users who log in
# using the DSpace password system will automatically become members of
# <span class="code-keyword">this</span> group. This is useful <span class="code-keyword">if</span> you want a group made up of all internal
# authenticated users.
#password.login.specialgroup = group-name

##### LDAP users group #####

# If required, a group name can be given here, and all users who log in
# to LDAP will automatically become members of <span class="code-keyword">this</span> group. This is useful
# <span class="code-keyword">if</span> you want a group made up of all internal authenticated users.
#ldap.login.specialgroup = group-name
</pre>
</div></div></li>
		<li>new option for case insensitivity in browse tables. 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
# By <span class="code-keyword">default</span>, the display of metadata in the browse indexes is <span class="code-keyword">case</span> sensitive
# So, you will get separate entries <span class="code-keyword">for</span> the terms
#
#   Olive oil
#   olive oil
#
# However, clicking through from either of these will result in the same set of items
# (ie. any item that contains either representation in the correct field).
#
# Uncommenting the option below will make the metadata items <span class="code-keyword">case</span>-insensitive. This will
# result in a single entry in the example above. However the value displayed may be either 'Olive oil'
# or 'olive oil' - depending on what representation was present in the first item indexed.
#
# If you care about the display of the metadata in the browse index - well, you'll have to go and
# fix the metadata in your items.
#
# webui.browse.metadata.<span class="code-keyword">case</span>-insensitive = <span class="code-keyword">true</span>
</pre>
</div></div></li>
		<li>New usage event handler for collecting statistics: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
### Usage event settings ###
# The usage event handler to call.  The <span class="code-keyword">default</span> is the <span class="code-quote">"passive"</span> handler, which ignores events.
# plugin.single.org.dspace.app.statistics.AbstractUsageEvent = \
#   org.dspace.app.statistics.PassiveUsageEvent
</pre>
</div></div></li>
		<li>The location where sitemaps are stored is now configurable. 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
#### Sitemap settings #####
# the directory where the generated sitemaps are stored
sitemap.dir = ${dspace.dir}/sitemaps
</pre>
</div></div></li>
		<li>MARC 21 ordering should now be used as default. Unless you have it set already, or you have it set to a different value, the following should be set: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
plugin.named.org.dspace.sort.OrderFormatDelegate = org.dspace.sort.OrderFormatTitleMarc21=title
</pre>
</div></div></li>
		<li>Hierarchical LDAP support. 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
##### Hierarchical LDAP Settings #####
# If your users are spread out across a hierarchical tree on your
# LDAP server, you will need to use the following stackable authentication
# class:
#  plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \
#        org.dspace.authenticate.LDAPHierarchicalAuthentication
#
# You can optionally specify the search scope. If anonymous access is not
# enabled on your LDAP server, you will need to specify the full DN and
# password of a user that is allowed to bind in order to search <span class="code-keyword">for</span> the
# users.

# This is the search scope value <span class="code-keyword">for</span> the LDAP search during
# autoregistering. This will depend on your LDAP server setup.
# This value must be one of the following integers corresponding
# to the following values:
# object scope : 0
# one level scope : 1
# subtree scope : 2
#ldap.search_scope = 2

# The full DN and password of a user allowed to connect to the LDAP server
# and search <span class="code-keyword">for</span> the DN of the user trying to log in.  If these are not specified,
# the initial bind will be performed anonymously.
#ldap.search.user = cn=admin,ou=people,o=myu.edu
#ldap.search.password = password

# If your LDAP server does not hold an email address <span class="code-keyword">for</span> a user, you can use
# the following field to specify your email domain. This value is appended
# to the netid in order to make an email address. E.g. a netid of 'user' and
# ldap.netid_email_domain as '@example.com' would set the email of the user
# to be 'user@example.com
#ldap.netid_email_domain = @example.com
</pre>
</div></div></li>
		<li>Shibboleth authentication support. 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
#### Shibboleth Authentication Configuration Settings ####
# Check https:<span class="code-comment">//mams.melcoe.mq.edu.au/zope/mams/pubs/Installation/dspace15/view
</span># <span class="code-keyword">for</span> installation detail.
#
#	org.dspace.authenticate.ShibAuthentication
#
# DSpace requires email as user's credential. There are 2 ways of providing
# email to DSpace:
# 1) by explicitly specifying to the user which attribute (header)
#    carries the email address.
# 2) by turning on the user-email-using-tomcat=<span class="code-keyword">true</span> which means
#    the software will <span class="code-keyword">try</span> to acquire the user's email from Tomcat
# The first option takes PRECEDENCE when specified. Both options can
# be enabled to allow fallback.

# <span class="code-keyword">this</span> option below specifies that the email comes from the mentioned header.
# The value is CASE-Sensitive.
authentication.shib.email-header = MAIL

# optional. Specify the header that carries user's first name
# <span class="code-keyword">this</span> is going to be used <span class="code-keyword">for</span> creation of <span class="code-keyword">new</span>-user
authentication.shib.firstname-header = SHIB-EP-GIVENNAME

# optional. Specify the header that carries user's last name
# <span class="code-keyword">this</span> is used <span class="code-keyword">for</span> creation of <span class="code-keyword">new</span> user
authentication.shib.lastname-header = SHIB-EP-SURNAME

# <span class="code-keyword">this</span> option below forces the software to acquire the email from Tomcat.
authentication.shib.email-use-tomcat-remote-user = <span class="code-keyword">true</span>

# should we allow <span class="code-keyword">new</span> users to be registered automatically
# <span class="code-keyword">if</span> the IdP provides sufficient info (and user not exists in DSpace)
authentication.shib.autoregister = <span class="code-keyword">true</span>

# <span class="code-keyword">this</span> header here specifies which attribute that is responsible
# <span class="code-keyword">for</span> providing user's roles to DSpace. When not specified, it is
# defaulted to 'Shib-EP-UnscopedAffiliation'. The value is specified
# in AAP.xml (Shib 1.3.x) or attribute-filter.xml (Shib 2.x).
# The value is CASE-Sensitive. The values provided in <span class="code-keyword">this</span>
# header are separated by semi-colon or comma.
# authentication.shib.role-header = Shib-EP-UnscopedAffiliation

# when user is fully authN on IdP but would not like to release
# his/her roles to DSpace (<span class="code-keyword">for</span> privacy reason?), what should be
# the <span class="code-keyword">default</span> roles be given to such users?
# The values are separated by semi-colon or comma
# authentication.shib.<span class="code-keyword">default</span>-roles = Staff, Walk-ins

# The following mappings specify role mapping between IdP and Dspace.
# the left side of the entry is IdP's role (prefixed with
# <span class="code-quote">"authentication.shib.role."</span>) which will be mapped to
# the right entry from DSpace. DSpace's group as indicated on the
# right entry has to EXIST in DSpace, otherwise user will be identified
# as 'anonymous'. Multiple values on the right entry should be separated
# by comma. The values are CASE-Sensitive. Heuristic one-to-one mapping
# will be done when the IdP groups entry are not listed below (i.e.
# <span class="code-keyword">if</span> <span class="code-quote">"X"</span> group in IdP is not specified here, then it will be mapped
# to <span class="code-quote">"X"</span> group in DSpace <span class="code-keyword">if</span> it exists, otherwise it will be mapped
# to simply 'anonymous')
#
# Given sufficient demand, <span class="code-keyword">future</span> release could support regex <span class="code-keyword">for</span> the mapping
# special characters need to be escaped by \
authentication.shib.role.Senior\ Researcher = Researcher, Staff
authentication.shib.role.Librarian = Administrator
</pre>
</div></div></li>
		<li>DOI and handle identifiers can now be rendered in the JSPUI. 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
# When using <span class="code-quote">"resolver"</span> in webui.itemdisplay to render identifiers as resolvable
# links, the base URL is taken from &lt;code&gt;webui.resolver.&lt;n&gt;.baseurl&lt;/code&gt;
# where &lt;code&gt;webui.resolver.&lt;n&gt;.baseurl&lt;/code&gt; matches the urn specified in the metadata value.
# The value is appended to the <span class="code-quote">"baseurl"</span> as is, so the baseurl need to end with slash almost in any <span class="code-keyword">case</span>.
# If no urn is specified in the value it will be displayed as simple text.
#
#webui.resolver.1.urn = doi
#webui.resolver.1.baseurl = http:<span class="code-comment">//dx.doi.org/
</span>#webui.resolver.2.urn = hdl
#webui.resolver.2.baseurl = http:<span class="code-comment">//hdl.handle.net/
</span>#
# For the doi and hdl urn defaults values are provided, respectively http:<span class="code-comment">//dx.doi.org and
</span># http:<span class="code-comment">//hdl.handle.net are used.
</span>#
# If a metadata value with style: <span class="code-quote">"doi"</span>, <span class="code-quote">"handle"</span> or <span class="code-quote">"resolver"</span> matches a URL
# already, it is simply rendered as a link with no other manipulation.
</pre>
</div></div>
<p> In configuration sections such as webui.itemdisplay.default, values can be changed from (e.g.) metadata.dc.identifier.doi to metadata.doi.dc.identifier.doi</p></li>
		<li>The whole of the SWORD configuration has changed. The SWORD section must be removed and replaced with 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
#---------------------------------------------------------------#
#--------------SWORD SPECIFIC CONFIGURATIONS--------------------#
#---------------------------------------------------------------#
# These configs are only used by the SWORD <span class="code-keyword">interface</span>            #
#---------------------------------------------------------------#

# tell the SWORD METS implementation which <span class="code-keyword">package</span> ingester to use
# to install deposited content.  This should refer to one of the
# classes configured <span class="code-keyword">for</span>:
#
# plugin.named.org.dspace.content.packager.PackageIngester
#
# The value of sword.mets-ingester.<span class="code-keyword">package</span>-ingester tells the
# system which named plugin <span class="code-keyword">for</span> <span class="code-keyword">this</span> <span class="code-keyword">interface</span> should be used
# to ingest SWORD METS packages
#
# The <span class="code-keyword">default</span> is METS
#
# sword.mets-ingester.<span class="code-keyword">package</span>-ingester = METS

# Define the metadata type EPDCX (EPrints DC XML)
# to be handled by the SWORD crosswalk configuration
#
mets.submission.crosswalk.EPDCX = SWORD

# define the stylesheet which will be used by the self-named
# XSLTIngestionCrosswalk class when asked to load the SWORD
# configuration (as specified above).  This will use the
# specified stylesheet to crosswalk the incoming SWAP metadata
# to the DIM format <span class="code-keyword">for</span> ingestion
#
crosswalk.submission.SWORD.stylesheet = crosswalks/sword-swap-ingest.xsl

# The base URL of the SWORD deposit.  This is the URL from
# which DSpace will construct the deposit location urls <span class="code-keyword">for</span>
# collections.
#
# The <span class="code-keyword">default</span> is {dspace.url}/sword/deposit
#
# In the event that you are not deploying DSpace as the ROOT
# application in the servlet container, <span class="code-keyword">this</span> will generate
# incorrect URLs, and you should override the functionality
# by specifying in full as below:
#
# sword.deposit.url = http:<span class="code-comment">//www.myu.ac.uk/sword/deposit
</span>
# The base URL of the SWORD service document.  This is the
# URL from which DSpace will construct the service document
# location urls <span class="code-keyword">for</span> the site, and <span class="code-keyword">for</span> individual collections
#
# The <span class="code-keyword">default</span> is {dspace.url}/sword/servicedocument
#
# In the event that you are not deploying DSpace as the ROOT
# application in the servlet container, <span class="code-keyword">this</span> will generate
# incorrect URLs, and you should override the functionality
# by specifying in full as below:
#
# sword.servicedocument.url = http:<span class="code-comment">//www.myu.ac.uk/sword/servicedocument
</span>
# The base URL of the SWORD media links.  This is the URL
# which DSpace will use to construct the media link urls
# <span class="code-keyword">for</span> items which are deposited via sword
#
# The <span class="code-keyword">default</span> is {dspace.url}/sword/media-link
#
# In the event that you are not deploying DSpace as the ROOT
# application in the servlet container, <span class="code-keyword">this</span> will generate
# incorrect URLs, and you should override the functionality
# by specifying in full as below:
#
# sword.media-link.url = http:<span class="code-comment">//www.myu.ac.uk/sword/media-link
</span>
# The URL which identifies the sword software which provides
# the sword <span class="code-keyword">interface</span>.  This is the URL which DSpace will use
# to fill out the atom:generator element of its atom documents.
#
# The <span class="code-keyword">default</span> is:
#
# http:<span class="code-comment">//www.dspace.org/ns/sword/1.3.1
</span>#
# If you have modified your sword software, you should change
# <span class="code-keyword">this</span> URI to identify your own version.  If you are using the
# standard dspace-sword module you will not, in general, need
# to change <span class="code-keyword">this</span> setting
#
# sword.generator.url = http:<span class="code-comment">//www.dspace.org/ns/sword/1.3.1
</span>
# The metadata field in which to store the updated date <span class="code-keyword">for</span>
# items deposited via SWORD.
#
sword.updated.field = dc.date.updated

# The metadata field in which to store the value of the slug
# header <span class="code-keyword">if</span> it is supplied
#
sword.slug.field = dc.identifier.slug

# the accept packaging properties, along with their associated
# quality values where appropriate.
#
# Global settings; these will be used on all DSpace collections
#
sword.accept-packaging.METSDSpaceSIP.identifier =
http:<span class="code-comment">//purl.org/net/sword-types/METSDSpaceSIP
</span>sword.accept-packaging.METSDSpaceSIP.q = 1.0

# Collection Specific settings: these will be used on the collections
# with the given handles
#
# sword.accept-packaging.[handle].METSDSpaceSIP.identifier =
http:<span class="code-comment">//purl.org/net/sword-types/METSDSpaceSIP
</span># sword.accept-packaging.[handle].METSDSpaceSIP.q = 1.0

# Should the server offer up items in collections as sword deposit
# targets.  This will be effected by placing a URI in the collection
# description which will list all the allowed items <span class="code-keyword">for</span> the depositing
# user in that collection on request
#
# NOTE: <span class="code-keyword">this</span> will require an implementation of deposit onto items, which
# will not be forthcoming <span class="code-keyword">for</span> a <span class="code-object">short</span> <span class="code-keyword">while</span>
#
sword.expose-items = <span class="code-keyword">false</span>

# Should the server offer as the <span class="code-keyword">default</span> the list of all Communities
# to a Service Document request.  If <span class="code-keyword">false</span>, the server will offer
# the list of all collections, which is the <span class="code-keyword">default</span> and recommended
# behavior at <span class="code-keyword">this</span> stage.
#
# NOTE: a service document <span class="code-keyword">for</span> Communities will not offer any viable
# deposit targets, and the client will need to request the list of
# Collections in the target before deposit can <span class="code-keyword">continue</span>
#
sword.expose-communities = <span class="code-keyword">false</span>

# The maximum upload size of a <span class="code-keyword">package</span> through the sword <span class="code-keyword">interface</span>,
# in bytes
#
# This will be the combined size of all the files, the metadata and
# any manifest data.  It is NOT the same as the maximum size set
# <span class="code-keyword">for</span> an individual file upload through the user <span class="code-keyword">interface</span>.  If not
# set, or set to 0, the sword service will <span class="code-keyword">default</span> to no limit.
#
sword.max-upload-size = 0

# Should DSpace store a copy of the original sword deposit <span class="code-keyword">package</span>?
#
# NOTE: <span class="code-keyword">this</span> will cause the deposit process to run slightly slower,
# and will accelerate the rate at which the repository consumes disk
# space.  BUT, it will also mean that the deposited packages are
# recoverable in their original form.  It is strongly recommended,
# therefore, to leave <span class="code-keyword">this</span> option turned on
#
# When set to <span class="code-quote">"<span class="code-keyword">true</span>"</span>, <span class="code-keyword">this</span> requires that the configuration option
# <span class="code-quote">"upload.temp.dir"</span> above is set to a valid location
#
sword.keep-original-<span class="code-keyword">package</span> = <span class="code-keyword">true</span>

# The bundle name that SWORD should store incoming packages under <span class="code-keyword">if</span>
# sword.keep-original-<span class="code-keyword">package</span> is set to <span class="code-keyword">true</span>.  The <span class="code-keyword">default</span> is <span class="code-quote">"SWORD"</span>
# <span class="code-keyword">if</span> not value is set
#
# sword.bundle.name = SWORD

# Should the server identify the sword version in deposit response?
#
# It is recommended to leave <span class="code-keyword">this</span> enabled.
#
sword.identify-version = <span class="code-keyword">true</span>

# Should we support mediated deposit via sword?  Enabled, <span class="code-keyword">this</span> will
# allow users to deposit content packages on behalf of other users.
#
# See the SWORD specification <span class="code-keyword">for</span> a detailed explanation of deposit
# On-Behalf-Of another user
#
sword.on-behalf-of.enable = <span class="code-keyword">true</span>

# Configure the plugins to process incoming packages.  The form of <span class="code-keyword">this</span>
# configuration is as per the Plugin Manager's Named Plugin documentation:
#
# plugin.named.[<span class="code-keyword">interface</span>] = [implementation] = [<span class="code-keyword">package</span> format identifier] \
#
# Package ingesters should implement the SWORDIngester <span class="code-keyword">interface</span>, and
# will be loaded when a <span class="code-keyword">package</span> of the format specified above in:
#
# sword.accept-packaging.[<span class="code-keyword">package</span> format].identifier = [<span class="code-keyword">package</span> format identifier]
#
# is received.
#
# In the event that <span class="code-keyword">this</span> is a simple file deposit, with no <span class="code-keyword">package</span>
# format, then the class named by <span class="code-quote">"SimpleFileIngester"</span> will be loaded
# and executed where appropriate.  This <span class="code-keyword">case</span> will only occur when a single
# file is being deposited into an existing DSpace Item
#
plugin.named.org.dspace.sword.SWORDIngester = \
  org.dspace.sword.SWORDMETSIngester =
http:<span class="code-comment">//purl.org/net/sword-types/METSDSpaceSIP \
</span>  org.dspace.sword.SimpleFileIngester = SimpleFileIngester
</pre>
</div></div></li>
	</ul>
	</li>
	<li><b>Restart Tomcat</b> Restart your servlet container, for Tomcat use the <em>bin/startup.sh</em> script.</li>
</ol>


<h2><a name="UpgradingaDSpaceInstallation-UpgradingFrom1.4.2to1.5"></a>Upgrading From 1.4.2 to 1.5</h2>

<p>The changes in DSpace 1.5 are significant and wide spread involving database schema upgrades, code restructuring, completely new user and programmatic interfaces, and new build system.</p>

<p>In the notes below <tt>[dspace]</tt> refers to the install directory for your existing DSpace installation, and <em>[dspace-source]</em> to the source directory for DSpace 1.5. Whenever you see these path references, be sure to replace them with the actual path names on your local system.</p>

<ol>
	<li><b>Backup your DSpace</b> First and foremost, make a complete backup of your system, including:
	<ul>
		<li>A snapshot of the database</li>
		<li>The asset store (<em>[dspace]/assetstore</em> by default)</li>
		<li>Your configuration files and customizations to DSpace</li>
		<li>Your statistics scripts (<em>[dspace]/bin/stat&#42;</em>) which contain customizable dates</li>
	</ul>
	</li>
	<li><b>Download DSpace 1.5.x</b> Get the new DSpace 1.5 source code either as a download from <a href="http://sourceforge.net/projects/dspace/">SourceForge</a> or check it out directly from the <a href="http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.5.2/">SVN code repository</a>. If you downloaded DSpace do not unpack it on top of your existing installation.</li>
	<li><b>Build DSpace</b> The build process has radically changed for DSpace 1.5. With this new release the build system has moved to a maven-based system enabling the various projects (JSPUI, XMLUI, OAI, and Core API) into separate projects. See the <a href="Installation.html" title="Installation">Installation</a> section for more information on building DSpace using the new maven-based build system. Run the following commands to compile DSpace.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
  cd [dspace-source]/dspace/;
  mvn <span class="code-keyword">package</span>
</pre>
</div></div>
<p>You will find the result in <em>[dspace-source]/dspace/target/dspace-1.5-build.dir/</em>; inside this directory is the compiled binary distribution of DSpace.</p></li>
	<li><b>Stop Tomcat</b> Take down your servlet container, for Tomcat use the <em>bin/shutdown.sh</em> script.</li>
	<li><b>Update</b> <b><em>dspace.cfg</em></b> Several new parameters need to be added to your <em>[dspace]/config/dspace.cfg</em>. While it is advisable to start with a fresh <em>DSpace 1.5 &#95;dspace.cfg</em> configuration file&#95; here are the minimum set of parameters that need to be added to an old <em>DSpace 1.4.2 configuration</em>.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
#### Stackable Authentication Methods #####
#
# Stack of authentication methods
#  (See org.dspace.authenticate.AuthenticationManager)
# Note when upgrading you should remove the parameter:
#  plugin.sequence.org.dspace.eperson.AuthenticationMethod
plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \
        org.dspace.authenticate.PasswordAuthentication

###### JSPUI item style plugin #####
#
# Specify which strategy use <span class="code-keyword">for</span> select the style <span class="code-keyword">for</span> an item
plugin.single.org.dspace.app.webui.util.StyleSelection = \

	org.dspace.app.webui.util.CollectionStyleSelection


###### Browse Configuration ######
#
# The following configuration will mimic the previous
# behavior exhibited  by DSpace 1.4.2. For alternative
# configurations see the manual.

# Browse indexes
webui.browse.index.1 = dateissued:item:dateissued
webui.browse.index.2 = author:metadata:dc.contributor.*:text
webui.browse.index.3 = title:item:title
webui.browse.index.4 = subject:metadata:dc.subject.*:text

# Sorting options
webui.itemlist.sort-option.1 = title:dc.title:title
webui.itemlist.sort-option.2 = dateissued:dc.date.issued:date
webui.itemlist.sort-option.3 =
	dateaccessioned:dc.date.accessioned:date

# Recent submissions
recent.submissions.count = 5

# Itemmapper browse index
itemmap.author.index = author

# Recent submission processor plugins
plugin.sequence.org.dspace.plugin.CommunityHomeProcessor = \
        org.dspace.app.webui.components.RecentCommunitySubmissions
plugin.sequence.org.dspace.plugin.CollectionHomeProcessor = \
        org.dspace.app.webui.components.RecentCollectionSubmissions

#### Content Inline Disposition Threshold ####
#
# Set the max size of a bitstream that can be served inline
# Use -1 to force all bitstream to be served inline
# webui.content_disposition_threshold = -1
webui.content_disposition_threshold = 8388608

#### Event <span class="code-object">System</span> Configuration ####
#
# <span class="code-keyword">default</span> synchronous dispatcher (same behavior as traditional
	DSpace)
event.dispatcher.<span class="code-keyword">default</span>.class = org.dspace.event.BasicDispatcher
event.dispatcher.<span class="code-keyword">default</span>.consumers = search, browse, eperson

# consumer to maintain the search index
event.consumer.search.class = org.dspace.search.SearchConsumer
event.consumer.search.filters =
	Item|Collection|Community|Bundle+Create|Modify|Modify_Metadata|Delete:
Bundle+Add|Remove

# consumer to maintain the browse index
event.consumer.browse.class = org.dspace.browse.BrowseConsumer
event.consumer.browse.filters =
	Item+Create|Modify|Modify_Metadata:Collection+Add|Remove

# consumer related to EPerson changes
event.consumer.eperson.class = org.dspace.eperson.EPersonConsumer
event.consumer.eperson.filters = EPerson+Create
</pre>
</div></div></li>
	<li><b>Add 'xmlui.xconf' Manakin configuration</b> The new Manakin user interface available with DSpace 1.5 requires an extra configuration file that you will need to manually copy it over to your configuration directory.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cp [dspace-source]/dspace/config/xmlui.xconf
	[dspace]/config/xmlui.xconf
</pre>
</div></div></li>
	<li><b>Add 'item-submission.xml' and 'item-submission.dtd' configurable submission configuration</b> The new configurable submission system that enables an administrator to re-arrange, or add/remove item submission steps requires this configuration file. You need to manually copy it over to your configuration directory.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cp [dspace-source]/dspace/config/item-submission.xml
	[dspace]/config/item-submission.xml

cp [dspace-source]/dspace/config/item-submission.dtd
	[dspace]/config/item-submission.dtd
</pre>
</div></div></li>
	<li><b>Add new 'input-forms.xml' and 'input-forms.dtd' configurable submission configuration</b> The input-forms.xml now has an included dtd reference to support validation. You'll need to merge in your changes to both file/and or copy them into place.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cp [dspace-source]/dspace/config/input-forms.xml
	[dspace]/config/input-forms.xml

cp [dspace-source]/dspace/config/input-forms.dtd
	[dspace]/config/inputforms.dtd
</pre>
</div></div></li>
	<li><b>Add 'sword-swap-ingest.xsl' and 'xhtml-head-item.properties' crosswalk files</b> New crosswalk files are required to support SWORD and the inclusion of metadata into the head of items.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cp [dspace-source]/dspace/config/crosswalks/sword-swap-ingest.xsl
	[dspace]/config/crosswalks/sword-swap-ingest.xsl


cp
	[dspace-source]/dspace/config/crosswalks/xhtml-head-item.properties
	[dspace]/config/crosswalks/xhtml-head-item.properties
</pre>
</div></div></li>
	<li><b>Add 'registration_notify' email files</b> A new configuration option (<em>registration.notify = you@your-email.com</em>) can be set to send a notification email whenever a new user registers to use your DSpace. The email template for this email needs to be copied.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cp [dspace-source]/dspace/config/emails/registration_notify
	[dspace]/config/emails/registration_notify

</pre>
</div></div></li>
	<li><b>Update the database</b> The database schema needs updating. SQL files contain the relevant updates are provided, note if you have made any local customizations to the database schema you should consult these updates and make sure they will work for you.
	<ul>
		<li>For PostgreSQL <em>psql &#45;U [dspace-user] &#45;f [dspace-source]/dspace/etc/database_schema_14-15.sql [database-name]</em></li>
		<li>For Oracle <em>[dspace-source]/dspace/etc/oracle/database_schema_142-15.sql</em> contains the commands necessary to upgrade your database schema on oracle.</li>
	</ul>
	</li>
	<li><b>Apply any customizations</b> If you have made any local customizations to your DSpace installation they will need to be migrated over to the new DSpace. Commonly these modifications are made to "JSP" pages located inside the <em>[dspace 1.4.2]/jsp/local</em> directory. These should be moved <em>[dspace-source]/dspace/modules/jspui/src/main/webapp/</em> in the new build structure. See Customizing the JSP Pages for more information.</li>
	<li><b>Update DSpace</b> Update the DSpace installed directory with new code and libraries. Inside the <em>[dspace-source]/dspace/target/dspace-1.5-build.dir/</em> directory run:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cd [dspace-source]/dspace/target/dspace-1.5-build.dir/;
ant -Dconfig=[dspace]/config/dspace.cfg update
</pre>
</div></div></li>
	<li><b>Update the Metadata Registry</b> New Metadata Registry updates are required to support SWORD.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cp [dspace-source]/dspace/config/registries/sword-metadata.xml
	[dspace]/config/registries/sword-metadata.xml;

[dspace]/bin/dsrun org.dspace.administer.MetadataImporter -f
	[dspace]/config/registries/sword-metadata.xml
</pre>
</div></div></li>
	<li><b>Rebuild browse and search indexes</b> One of the major new features of DSpace 1.5 is the browse system which necessitates that the indexes be recreated. To do this run the following command from your DSpace installed directory:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
[dspace]/bin/index-init
</pre>
</div></div></li>
	<li><b>Update statistics scripts</b> The statistics scripts have been rewritten for DSpace 1.5. Prior to 1.5 they were written in Perl, but have been rewritten in Java to avoid having to install Perl. First, make a note of the dates you have specified in your statistics scripts for the statistics to run from. You will find these in <em>[dspace]/bin/stat-initial</em>, as <em>$start_year</em> and <em>$start_month</em>. Note down these values.Copy the new stats scripts: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
    cp [dspace-source]/dspace/bin/stat* [dspace]/bin/
</pre>
</div></div>
<p>Then edit your statistics configuration file with the start details. Add the following to <em>[dspace]/conf/dstat.cfg</em><em>&#35; the year and month to start creating reports from</em><em>&#35; - year as four digits (e.g. 2005)</em><em>&#35; - month as a number (e.g. January is 1, December is 12)</em><em>start.year = 2005</em><em>start.month = 1</em> Replace '2005' and '1' as with the values you noted down. <em>dstat.cfg</em> also used to contain the hostname and service name as displayed at the top of the statistics. These values are now taken from <em>dspace.cfg</em> so you can remove <em>host.name</em> and <em>host.url</em> from <em>dstat.cfg</em> if you wish. The values now used are <em>dspace.hostname</em> and <em>dspace.name</em> from <em>dspace.cfg</em></p></li>
	<li><b>Deploy web applications</b> Copy the web applications files from your [dspace]/webapps directory to the subdirectory of your servlet container (e.g. Tomcat):
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cp [dspace]/webapps/* [tomcat]/webapps/
</pre>
</div></div></li>
	<li><b>Restart Tomcat</b> Restart your servlet container, for Tomcat use the <em>bin/startup.sh</em> script.</li>
</ol>


<h2><a name="UpgradingaDSpaceInstallation-UpgradingFrom1.4.1to1.4.2"></a>Upgrading From 1.4.1 to 1.4.2</h2>

<p>See Upgrading From 1.4 to 1.4.x; the same instructions apply.</p>


<h2><a name="UpgradingaDSpaceInstallation-UpgradingFrom1.4to1.4.x"></a>Upgrading From 1.4 to 1.4.x</h2>

<p>The changes in 1.4.x releases are only code and configuration changes so the update is simply a matter of rebuilding the wars and slight changes to your config file.</p>

<p>In the notes below <tt>[dspace]</tt> refers to the install directory for your existing DSpace installation, and <em>[dspace-1.4.x-source]</em> to the source directory for DSpace 1.4.x. Whenever you see these path references, be sure to replace them with the actual path names on your local system.</p>

<ol>
	<li>Get the new DSpace 1.4.x source code from <a href="http://sourceforge.net/projects/dspace/">the DSpace page on SourceForge</a> and unpack it somewhere. Do not unpack it on top of your existing installation&#33;&#33;</li>
	<li>Copy the PostgreSQL driver JAR to the source tree. For example: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cd  [dspace]/lib
cp postgresql.jar  [dspace-1.4.x-source]/lib
</pre>
</div></div></li>
	<li><b>Note:</b> Licensing conditions for the <em>handle.jar</em> file have changed. As a result, the latest version of the <em>handle.jar</em> file is not included in this distribution. It is recommended you read the <a href="http://www.handle.net/upgrade_6-2_DSpace.html" title="new license conditions">new license conditions</a> and decide whether you wish to update your installation's <em>handle.jar</em>. If you decide to update, you should replace the existing <em>handle.jar</em> in <em>[dspace-1.4.x-source]</em>/lib with the new version.</li>
	<li>Take down Tomcat (or whichever servlet container you're using).</li>
	<li>A new configuration item <em>webui.html.max-depth-guess</em> has been added to avoid infinite URL spaces. Add the following to the dspace.cfg file:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
#### Multi-file HTML document/site settings #####
#
# When serving up composite HTML items, how deep can the request be
	<span class="code-keyword">for</span> us to
# serve up a file with the same name?
#
# e.g. <span class="code-keyword">if</span> we receive a request <span class="code-keyword">for</span> <span class="code-quote">"foo/bar/index.html"</span>
# and we have a bitstream called just <span class="code-quote">"index.html"</span>
# we will serve up that bitstream <span class="code-keyword">for</span> the request <span class="code-keyword">if</span>
	webui.html.max-depth-guess
# is 2 or greater.  If webui.html.max-depth-guess is 1 or less, we
	would not
# serve that bitstream, as the depth of the file is greater.
#
# If webui.html.max-depth-guess is zero, the request filename and
	path must
# always exactly match the bitstream name.  Default value is 3.
#
webui.html.max-depth-guess = 3
</pre>
</div></div>
<p>If <em>webui.html.max-depth-guess</em> is not present in <em>dspace.cfg</em> the default value is used. If archiving entire web sites or deeply nested HTML documents it is advisable to change the default to a higher value more suitable for these types of materials.</p></li>
	<li>Your 'localized' JSPs (those in jsp/local) now need to be maintained in the <em>source</em> directory. If you have locally modified JSPs in your <em>[dspace]/jsp/local</em> directory, you will need to merge the changes in the new 1.4.x versions into your locally modified ones. You can use the <em>diff</em> command to compare your JSPs against the 1.4.x versions to do this. You can also check against the <a href="http://dspace.cvs.sourceforge.net/dspace/">DSpace CVS</a>.</li>
	<li>In <em>[dspace-1.4.x-source]</em> run:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
ant -Dconfig= [dspace]/config/dspace.cfg update
</pre>
</div></div></li>
	<li>Copy the <em>.war</em> Web application files in <em>[dspace-1.4.x-source]/build</em> to the <em>webapps</em> sub-directory of your servlet container (e.g. Tomcat). e.g.:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cp  [dspace-1.4.x-source]/build/*.war
	[tomcat]/webapps
</pre>
</div></div>
<p>If you're using Tomcat, you need to delete the directories corresponding to the old <em>.war</em> files. For example, if <em>dspace.war</em> is installed in <em>[tomcat]/webapps/dspace.war</em>, you should delete the <em>[tomcat]/webapps/dspace</em> directory. Otherwise, Tomcat will continue to use the old code in that directory.</p></li>
	<li>Restart Tomcat.</li>
</ol>


<h2><a name="UpgradingaDSpaceInstallation-UpgradingFrom1.3.2to1.4.x"></a>Upgrading From 1.3.2 to 1.4.x</h2>

<ol>
	<li>First and foremost, <b>make a complete backup</b> of your system, including:
	<ul>
		<li>A snapshot of the database</li>
		<li>The asset store (<em>[dspace]/assetstore</em> by default)</li>
		<li>Your configuration files and localized JSPs</li>
	</ul>
	</li>
	<li>Download the <a href="http://sourceforge.net/projects/dspace/">latest DSpace 1.4.x source bundle</a> and unpack it in a suitable location (<em>not</em> over your existing DSpace installation or source tree&#33;)</li>
	<li>Copy the PostgreSQL driver JAR to the source tree. For example: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cd  [dspace]/lib
cp postgresql.jar  [dspace-1.4.x-source]/lib
</pre>
</div></div></li>
	<li><b>Note:</b> Licensing conditions for the <em>handle.jar</em> file have changed. As a result, the latest version of the <em>handle.jar</em> file is not included in this distribution. It is recommended you read the <a href="http://www.handle.net/upgrade_6-2_DSpace.html" title="new license conditions">new license conditions</a> and decide whether you wish to update your installation's <em>handle.jar</em>. If you decide to update, you should replace the existing <em>handle.jar</em> in <em>[dspace-1.4.x-source]</em>/lib with the new version.</li>
	<li>Take down Tomcat (or whichever servlet container you're using).</li>
	<li>Your DSpace configuration will need some updating:
	<ul>
		<li>In <em>dspace.cfg</em>, paste in the following lines for the new stackable authentication feature, the new method for managing Media Filters, and the Checksum Checker.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
#### Stackable Authentication Methods #####
# Stack of authentication methods
#  (See org.dspace.eperson.AuthenticationManager)
plugin.sequence.org.dspace.eperson.AuthenticationMethod = \
          org.dspace.eperson.PasswordAuthentication

#### Example of configuring X.509 authentication
#### (to use it, add org.dspace.eperson.X509Authentication to stack)

## method 1, using keystore
#authentication.x509.keystore.path = /<span class="code-keyword">var</span>/local/tomcat/conf/keystore
#authentication.x509.keystore.password = changeit

## method 2, using CA certificate
#authentication.x509.ca.cert = ${dspace.dir}/config/mitClientCA.der

## Create e-persons <span class="code-keyword">for</span> unknown names in valid certificates?
#authentication.x509.autoregister = <span class="code-keyword">true</span>


#### Media Filter plugins (through PluginManager) ####

plugin.sequence.org.dspace.app.mediafilter.MediaFilter = \
    org.dspace.app.mediafilter.PDFFilter,
	org.dspace.app.mediafilter.HTMLFilter, \
    org.dspace.app.mediafilter.WordFilter,
	org.dspace.app.mediafilter.JPEGFilter
# to enable branded preview: remove last line above, and uncomment 2
	lines below
#   org.dspace.app.mediafilter.WordFilter,
	org.dspace.app.mediafilter.JPEGFilter, \
#   org.dspace.app.mediafilter.BrandedPreviewJPEGFilter

filter.org.dspace.app.mediafilter.PDFFilter.inputFormats = Adobe PDF
filter.org.dspace.app.mediafilter.HTMLFilter.inputFormats = HTML,
	Text
filter.org.dspace.app.mediafilter.WordFilter.inputFormats = Microsoft
	Word
filter.org.dspace.app.mediafilter.JPEGFilter.inputFormats = GIF,
	JPEG, image/png
filter.org.dspace.app.mediafilter.BrandedPreviewJPEGFilter.inputFormat
s = GIF, JPEG, image/png


#### Settings <span class="code-keyword">for</span> Item Preview ####
webui.preview.enabled = <span class="code-keyword">false</span>
# max dimensions of the preview image
webui.preview.maxwidth = 600
webui.preview.maxheight = 600
# the brand text
webui.preview.brand = My Institution Name
# an abbreviated form of the above text, <span class="code-keyword">this</span> will be used
# when the preview image cannot fit the normal text
webui.preview.brand.abbrev = MyOrg
# the height of the brand
webui.preview.brand.height = 20
# font settings <span class="code-keyword">for</span> the brand text
webui.preview.brand.font = SansSerif
webui.preview.brand.fontpoint = 12
#webui.preview.dc = rights


#### Checksum Checker Settings ####
# Default dispatcher in <span class="code-keyword">case</span> none specified
plugin.single.org.dspace.checker.BitstreamDispatcher=org.dspace.checke
r.SimpleDispatcher
# Standard <span class="code-keyword">interface</span> implementations. You shouldn't need to tinker
	with these.
plugin.single.org.dspace.checker.ReporterDAO=org.dspace.checker.Report
erDAOImpl

# check history retention
checker.retention.<span class="code-keyword">default</span>=10y
checker.retention.CHECKSUM_MATCH=8w
</pre>
</div></div></li>
		<li>If you have customized advanced search fields (<em>search.index.n</em> fields, note that you now need to include the schema in the values. Dublin Core is specified as <em>dc</em>. So for example, if in 1.3.2 you had:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
search.index.1 = title:title.alternative
</pre>
</div></div>
<p>That needs to be changed to: </p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
search.index.1 = title:dc.title.alternative
</pre>
</div></div></li>
		<li>If you use LDAP or X509 authentication, you'll need to add <em>org.dspace.eperson.LDAPAuthentication</em> or <em>org.dspace.eperson.X509Authentication</em> respectively. See also configuring custom authentication code.</li>
		<li>If you have custom Media Filters, note that these are now configured through <em>dspace.cfg</em> (instead of <em>mediafilter.cfg</em> which is obsolete.)</li>
		<li>Also, take a look through the default <em>dspace.cfg</em> file supplied with DSpace 1.4.x, as this contains configuration options for various new features you might like to use. In general, these new features default to 'off' and you'll need to add configuration properties as described in the default 1.4.x <em>dspace.cfg</em> to activate them.</li>
	</ul>
	</li>
	<li>Your 'localized' JSPs (those in jsp/local) now need to be maintained in the <em>source</em> directory. If you have locally modified JSPs in your <em>[dspace]/jsp/local</em> directory, you will need to merge the changes in the new 1.4.x versions into your locally modified ones. You can use the <em>diff</em> command to compare your JSPs against the 1.4.x versions to do this. You can also check against the <a href="http://dspace.cvs.sourceforge.net/dspace/" title="DSpace CVS">DSpace CVS</a>.</li>
	<li>In <em>[dspace-1.4.x-source]</em> run:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
ant -Dconfig= [dspace]/config/dspace.cfg update
</pre>
</div></div></li>
	<li>The database schema needs updating. SQL files containing the relevant file are provided. If you've modified the schema locally, you may need to check over this and make alterations.
	<ul>
		<li><b>For PostgreSQL</b>: <em>[dspace-1.4.x-source]/etc/database_schema_13-14.sql</em> contains the SQL commands to achieve this for PostgreSQL. To apply the changes, go to the source directory, and run:<em>psql &#45;f etc/database_schema_13-14.sql [DSpace database name] &#45;h localhost</em></li>
		<li><b>For Oracle</b>: <em>[dspace-1.4.x-source]/etc/oracle/database_schema_13-14.sql</em> should be run on the DSpace database to update the schema.</li>
	</ul>
	</li>
	<li>Rebuild the search indexes: <em>[dspace]/bin/index-all</em></li>
	<li>Copy the <em>.war</em> Web application files in <em>[dspace-1.4-source]/build</em> to the <em>webapps</em> sub-directory of your servlet container (e.g. Tomcat). e.g.:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cp  [dspace-1.4-source]/build/*.war
	[tomcat]/webapps
</pre>
</div></div>
<p>If you're using Tomcat, you need to delete the directories corresponding to the old <em>.war</em> files. For example, if <em>dspace.war</em> is installed in <em>[tomcat]/webapps/dspace.war</em>, you should delete the <em>[tomcat]/webapps/dspace</em> directory. Otherwise, Tomcat will continue to use the old code in that directory.</p></li>
	<li>Restart Tomcat.</li>
</ol>


<h2><a name="UpgradingaDSpaceInstallation-UpgradingFrom1.3.1to1.3.2"></a>Upgrading From 1.3.1 to 1.3.2</h2>

<p>The changes in 1.3.2 are only code changes so the update is simply a matter of rebuilding the wars.</p>

<p>In the notes below <tt>[dspace]</tt> refers to the install directory for your existing DSpace installation, and <em>[dspace-1.3.2-source]</em> to the source directory for DSpace 1.3.2. Whenever you see these path references, be sure to replace them with the actual path names on your local system.</p>

<ol>
	<li>Get the new DSpace 1.3.2 source code from <a href="http://sourceforge.net/projects/dspace/" title="the DSpace page on SourceForge">the DSpace page on SourceForge</a> and unpack it somewhere. Do not unpack it on top of your existing installation&#33;&#33;</li>
	<li>Copy the PostgreSQL driver JAR to the source tree. For example: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cd  [dspace]/lib
cp postgresql.jar  [dspace-1.3.2-source]/lib
</pre>
</div></div></li>
	<li>Take down Tomcat (or whichever servlet container you're using).</li>
	<li>Your 'localized' JSPs (those in jsp/local) now need to be maintained in the <em>source</em> directory. If you have locally modified JSPs in your <em>[dspace]/jsp/local</em> directory, you will need to merge the changes in the new 1.3.2 versions into your locally modified ones. You can use the <em>diff</em> command to compare the 1.3.1 and 1.3.2 versions to do this.</li>
	<li>In <em>[dspace-1.3.2-source]</em> run:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
ant -Dconfig= [dspace]/config/dspace.cfg update
</pre>
</div></div></li>
	<li>Copy the <em>.war</em> Web application files in <em>[dspace-1.3.2-source]/build</em> to the <em>webapps</em> sub-directory of your servlet container (e.g. Tomcat). e.g.:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cp  [dspace-1.3.2-source]/build/*.war
	[tomcat]/webapps
</pre>
</div></div>
<p>If you're using Tomcat, you need to delete the directories corresponding to the old <em>.war</em> files. For example, if <em>dspace.war</em> is installed in <em>[tomcat]/webapps/dspace.war</em>, you should delete the <em>[tomcat]/webapps/dspace</em> directory. Otherwise, Tomcat will continue to use the old code in that directory.</p></li>
	<li>Restart Tomcat.</li>
</ol>


<h2><a name="UpgradingaDSpaceInstallation-UpgradingFrom1.2.xto1.3.x"></a>Upgrading From 1.2.x to 1.3.x</h2>

<p>In the notes below <tt>[dspace]</tt> refers to the install directory for your existing DSpace installation, and <em>[dspace-1.3.x-source]</em> to the source directory for DSpace 1.3.x. Whenever you see these path references, be sure to replace them with the actual path names on your local system.</p>

<ol>
	<li>Step one is, of course, to <b>back up all your data</b> before proceeding&#33;&#33; Include all of the contents of <tt>[dspace]</tt> and the PostgreSQL database in your backup.</li>
	<li>Get the new DSpace 1.3.x source code from <a href="http://sourceforge.net/projects/dspace/" title="the DSpace page on SourceForge">the DSpace page on SourceForge</a> and unpack it somewhere. Do not unpack it on top of your existing installation&#33;&#33;</li>
	<li>Copy the PostgreSQL driver JAR to the source tree. For example: <em>cd [dspace]/lib</em><em>cp postgresql.jar [dspace-1.2.2-source]/lib</em></li>
	<li>Take down Tomcat (or whichever servlet container you're using).</li>
	<li>Remove the old version of <em>xerces.jar</em> from your installation, so it is not inadvertently later used:<em>rm [dspace]/lib/xerces.jar</em></li>
	<li>Install the new config files by moving <em>dstat.cfg</em> and <em>dstat.map</em> from <em>[dspace-1.3.x-source]/config/</em> to <em>[dspace]/config</em></li>
	<li>You need to add new parameters to your <em>[dspace]/dspace.cfg</em>:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
###### Statistical Report Configuration Settings ######

# should the stats be publicly available?  should be set to <span class="code-keyword">false</span> <span class="code-keyword">if</span>
	you only
# want administrators to access the stats, or you <span class="code-keyword">do</span> not intend to
	generate
# any
report.<span class="code-keyword">public</span> = <span class="code-keyword">false</span>

# directory where live reports are stored
report.dir = /dspace/reports/

</pre>
</div></div></li>
	<li>Build and install the updated DSpace 1.3.x code. Go to the <em>[dspace-1.3.x-source]</em> directory, and run:<em>ant &#45;Dconfig=[dspace]/config/dspace.cfg update</em></li>
	<li>You'll need to make some changes to the database schema in your PostgreSQL database. <em>[dspace-1.3.x-source]/etc/database_schema_12-13.sql</em> contains the SQL commands to achieve this. If you've modified the schema locally, you may need to check over this and make alterations. To apply the changes, go to the source directory, and run: <em>psql &#45;f etc/database_schema_12-13.sql [DSpace database name] &#45;h localhost</em></li>
	<li>Customize the stat generating statistics as per the instructions in System Statistical Reports</li>
	<li>Initialize the statistics using: <em>[dspace]/bin/stat-initial</em><em>[dspace]/bin/stat-general</em><em>[dspace]/bin/stat-report-initial</em><em>[dspace]/bin/stat-report-general</em></li>
	<li>Rebuild the search indexes: <em>[dspace]/bin/index-all</em></li>
	<li>Copy the <em>.war</em> Web application files in <em>[dspace-1.3.x-source]/build</em> to the <em>webapps</em> sub-directory of your servlet container (e.g. Tomcat). e.g.:<em>cp [dspace-1.3.x-source]/build/*.war [tomcat]/webapps</em></li>
	<li>Restart Tomcat.</li>
</ol>


<h2><a name="UpgradingaDSpaceInstallation-UpgradingFrom1.2.1to1.2.2"></a>Upgrading From 1.2.1 to 1.2.2</h2>

<p>The changes in 1.2.2 are only code and config changes so the update should be fairly simple.</p>

<p>In the notes below <tt>[dspace]</tt> refers to the install directory for your existing DSpace installation, and <em>[dspace-1.2.2-source]</em> to the source directory for DSpace 1.2.2. Whenever you see these path references, be sure to replace them with the actual path names on your local system.</p>

<ol>
	<li>Get the new DSpace 1.2.2 source code from <a href="http://sourceforge.net/projects/dspace/" title="the DSpace page on SourceForge">the DSpace page on SourceForge</a> and unpack it somewhere. Do not unpack it on top of your existing installation&#33;&#33;</li>
	<li>Copy the PostgreSQL driver JAR to the source tree. For example: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cd  [dspace]/lib
cp postgresql.jar  [dspace-1.2.2-source]/lib
</pre>
</div></div></li>
	<li>Take down Tomcat (or whichever servlet container you're using).</li>
	<li>Your 'localized' JSPs (those in jsp/local) now need to be maintained in the <em>source</em> directory. If you have locally modified JSPs in your <em>[dspace]/jsp/local</em> directory, you might like to merge the changes in the new 1.2.2 versions into your locally modified ones. You can use the <em>diff</em> command to compare the 1.2.1 and 1.2.2 versions to do this. Also see the version history for a list of modified JSPs.</li>
	<li>You need to add a new parameter to your <em>[dspace]/dspace.cfg</em> for configurable fulltext indexing
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
##### Fulltext Indexing settings #####
# Maximum number of terms indexed <span class="code-keyword">for</span> a single field in Lucene.
# Default is 10,000 words - often not enough <span class="code-keyword">for</span> full-text indexing.
# If you change <span class="code-keyword">this</span>, you'll need to re-index <span class="code-keyword">for</span> the change
# to take effect on previously added items.
# -1 = unlimited (<span class="code-object">Integer</span>.MAX_VALUE)
search.maxfieldlength = 10000
</pre>
</div></div></li>
	<li>In <em>[dspace-1.2.2-source]</em> run:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
ant -Dconfig= [dspace]/config/dspace.cfg update
</pre>
</div></div></li>
	<li>Copy the <em>.war</em> Web application files in <em>[dspace-1.2.2-source]/build</em> to the <em>webapps</em> sub-directory of your servlet container (e.g. Tomcat). e.g.:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cp  [dspace-1.2.2-source]/build/*.war
	[tomcat]/webapps
</pre>
</div></div>
<p>If you're using Tomcat, you need to delete the directories corresponding to the old <em>.war</em> files. For example, if <em>dspace.war</em> is installed in <em>[tomcat]/webapps/dspace.war</em>, you should delete the <em>[tomcat]/webapps/dspace</em> directory. Otherwise, Tomcat will continue to use the old code in that directory.</p></li>
	<li>To finalize the install of the new configurable submission forms you need to copy the file <em>[dspace-1.2.2-source]/config/input-forms.xml</em> into <em>[dspace]/config</em>.</li>
	<li>Restart Tomcat.</li>
</ol>


<h2><a name="UpgradingaDSpaceInstallation-UpgradingFrom1.2to1.2.1"></a>Upgrading From 1.2 to 1.2.1</h2>

<p>The changes in 1.2.1 are only code changes so the update should be fairly simple.</p>

<p>In the notes below <tt>[dspace]</tt> refers to the install directory for your existing DSpace installation, and <em>[dspace-1.2.1-source]</em> to the source directory for DSpace 1.2.1. Whenever you see these path references, be sure to replace them with the actual path names on your local system.</p>

<ol>
	<li>Get the new DSpace 1.2.1 source code from <a href="http://sourceforge.net/projects/dspace/" title="the DSpace page on SourceForge">the DSpace page on SourceForge</a> and unpack it somewhere. Do not unpack it on top of your existing installation&#33;&#33;</li>
	<li>Copy the PostgreSQL driver JAR to the source tree. For example: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cd  [dspace]/lib
cp postgresql.jar  [dspace-1.2.1-source]/lib
</pre>
</div></div></li>
	<li>Take down Tomcat (or whichever servlet container you're using).</li>
	<li>Your 'localized' JSPs (those in jsp/local) now need to be maintained in the <em>source</em> directory. If you have locally modified JSPs in your <em>[dspace]/jsp/local</em> directory, you might like to merge the changes in the new 1.2.1 versions into your locally modified ones. You can use the <em>diff</em> command to compare the 1.2 and 1.2.1 versions to do this. Also see the version history for a list of modified JSPs.</li>
	<li>You need to add a few new parameters to your <em>[dspace]/dspace.cfg</em> for browse/search and item thumbnails display, and for configurable DC metadata fields to be indexed.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
# whether to display thumbnails on browse and search results pages
	(1.2+)
webui.browse.thumbnail.show = <span class="code-keyword">false</span>

# max dimensions of the browse/search thumbs. Must be &lt;=
	thumbnail.maxwidth
# and thumbnail.maxheight. Only need to be set <span class="code-keyword">if</span> required to be
	smaller than
# dimension of thumbnails generated by mediafilter (1.2+)
#webui.browse.thumbnail.maxheight = 80
#webui.browse.thumbnail.maxwidth = 80

# whether to display the thumb against each bitstream (1.2+)
webui.item.thumbnail.show = <span class="code-keyword">true</span>

# where should clicking on a thumbnail from browse/search take the
	user
# Only values currently supported are <span class="code-quote">"item"</span> and
	<span class="code-quote">"bitstream"</span>
#webui.browse.thumbnail.linkbehaviour = item


 ##### Fields to Index <span class="code-keyword">for</span> Search #####

# DC metadata elements.qualifiers to be indexed <span class="code-keyword">for</span> search
# format: - search.index.[number] = [search field]:element.qualifier
#         - * used as wildcard

###      changing these will change your search results,     ###
###  but will NOT automatically change your search displays  ###

search.index.1 = author:contributor.*
search.index.2 = author:creator.*
search.index.3 = title:title.*
search.index.4 = keyword:subject.*
search.index.5 = <span class="code-keyword">abstract</span>:description.<span class="code-keyword">abstract</span>
search.index.6 = author:description.statementofresponsibility
search.index.7 = series:relation.ispartofseries
search.index.8 = <span class="code-keyword">abstract</span>:description.tableofcontents
search.index.9 = mime:format.mimetype
search.index.10 = sponsor:description.sponsorship
search.index.11 = id:identifier.*
</pre>
</div></div></li>
	<li>In <em>[dspace-1.2.1-source]</em> run:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
ant -Dconfig= [dspace]/config/dspace.cfg update
</pre>
</div></div></li>
	<li>Copy the <em>.war</em> Web application files in <em>[dspace-1.2.1-source]/build</em> to the <em>webapps</em> sub-directory of your servlet container (e.g. Tomcat). e.g.:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cp  [dspace-1.2.1-source]/build/*.war
	[tomcat]/webapps
</pre>
</div></div>
<p>If you're using Tomcat, you need to delete the directories corresponding to the old <em>.war</em> files. For example, if <em>dspace.war</em> is installed in <em>[tomcat]/webapps/dspace.war</em>, you should delete the <em>[tomcat]/webapps/dspace</em> directory. Otherwise, Tomcat will continue to use the old code in that directory.</p></li>
	<li>Restart Tomcat.</li>
</ol>


<h2><a name="UpgradingaDSpaceInstallation-UpgradingFrom1.1%28or1.1.1%29to1.2"></a>Upgrading From 1.1 (or 1.1.1) to 1.2</h2>

<p>The process for upgrading to 1.2 from either 1.1 or 1.1.1 is the same. If you are running DSpace 1.0 or 1.0.1, you need to follow the instructions for upgrading from 1.0.1 to 1.1 to before following these instructions.</p>

<p>Note also that if you've substantially modified DSpace, these instructions apply to an unmodified 1.1.1 DSpace instance, and you'll need to adapt the process to any modifications you've made.</p>

<p>This document refers to the install directory for your existing DSpace installation as <tt>[dspace]</tt>, and to the source directory for DSpace 1.2 as <em>[dspace-1.2-source]</em>. Whenever you see these path references below, be sure to replace them with the actual path names on your local system.</p>

<ol>
	<li>Step one is, of course, to <b>back up all your data</b> before proceeding&#33;&#33; Include all of the contents of <tt>[dspace]</tt> and the PostgreSQL database in your backup.</li>
	<li>Get the new DSpace 1.2 source code from <a href="http://sourceforge.net/projects/dspace/" title="the DSpace page on SourceForge">the DSpace page on SourceForge</a> and unpack it somewhere. Do not unpack it on top of your existing installation&#33;&#33;</li>
	<li>Copy the required Java libraries that we couldn't include in the bundle to the source tree. For example:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cd  [dspace]/lib
cp activation.jar servlet.jar mail.jar
	[dspace-1.2-source]/lib
</pre>
</div></div></li>
	<li>Stop Tomcat (or other servlet container.)</li>
	<li>It's a good idea to upgrade all of the various third-party tools that DSpace uses to their latest versions:
	<ul>
		<li>Java (note that now version 1.4.0 or later is <em>required</em>)</li>
		<li>Tomcat (Any version after 4.0 will work; symbolic links are no longer an issue)</li>
		<li>PostgreSQL (don't forget to build/download an updated JDBC driver .jar file&#33; Also, <b>back up the database</b> first.)</li>
		<li>Ant</li>
	</ul>
	</li>
	<li>You need to add the following new parameters to your <em>[dspace]/dspace.cfg</em>:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
##### Media Filter settings #####
# maximum width and height of generated thumbnails
thumbnail.maxwidth = 80
thumbnail.maxheight = 80
</pre>
</div></div>
<p>There are one or two other, optional extra parameters (for controlling the pool of database connections). See the version history for details. If you leave them out, defaults will be used.Also, to avoid future confusion, you might like to <b>remove</b> the following property, which is no longer required:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
config.template.oai-web.xml =
	[dspace]/oai/WEB-INF/web.xml
</pre>
</div></div></li>
	<li>The layout of the installation directory (i.e. the structure of the contents of <tt>[dspace]</tt>) has changed somewhat since 1.1.1. First up, your 'localized' JSPs (those in jsp/local) now need to be maintained in the <em>source</em> directory. So make a copy of them now&#33;Once you've done that, you can remove <em>[dspace]/jsp</em> and <em>[dspace]/oai</em>, these are no longer used. (.war Web application archive files are used instead).Also, if you're using the same version of Tomcat as before, you need to <b>remove the lines from Tomcat's conf/server.xml file that enable symbolic links for DSpace.</b> These are the <em>&lt;Context&gt;</em> elements you added to get DSpace 1.1.1 working, looking something like this:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
&lt;Context path=<span class="code-quote">"/dspace"</span> docBase=<span class="code-quote">"dspace"</span> debug=<span class="code-quote">"0"</span> reloadable=<span class="code-quote">"<span class="code-keyword">true</span>"</span>
	crossContext=<span class="code-quote">"<span class="code-keyword">true</span>"</span>&gt;
  &lt;Resources className=<span class="code-quote">"org.apache.naming.resources.FileDirContext"</span>
	allowLinking=<span class="code-quote">"<span class="code-keyword">true</span>"</span> /&gt;
&lt;/Context&gt;
</pre>
</div></div>
<p>Be sure to remove the &lt;Context&gt; elements for both the Web UI and the OAI Web applications.</p></li>
	<li>Build and install the updated DSpace 1.2 code. Go to the DSpace 1.2 source directory, and run: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
ant -Dconfig= [dspace]/config/dspace.cfg update
</pre>
</div></div></li>
	<li>Copy the new config files in <em>config</em> to your installation, e.g.:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cp  [dspace-1.2-source]/config/news-*
	[dspace-1.2-source]/config/mediafilter.cfg
	[dspace-1.2-source]/config/dc2mods.cfg
	[dspace]/config
</pre>
</div></div></li>
	<li>You'll need to make some changes to the database schema in your PostgreSQL database. <em>[dspace-1.2-source]/etc/database_schema_11-12.sql</em> contains the SQL commands to achieve this. If you've modified the schema locally, you may need to check over this and make alterations.To apply the changes, go to the source directory, and run: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
psql -f etc/database_schema_11-12.sql [DSpace database name] -h
	localhost
</pre>
</div></div></li>
	<li>A tool supplied with the DSpace 1.2 codebase will then update the actual data in the relational database. Run it using: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"> [dspace]/bin/dsrun
	org.dspace.administer.Upgrade11To12
</pre>
</div></div></li>
	<li>Then rebuild the search indexes: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"> [dspace]/bin/index-all
</pre>
</div></div></li>
	<li>Delete the existing symlinks from your servlet container's (e.g. Tomcat's) <em>webapp</em> sub-directory.Copy the <em>.war</em> Web application files in <em>[dspace-1.2-source]/build</em> to the <em>webapps</em> sub-directory of your servlet container (e.g. Tomcat). e.g.:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cp  [dspace-1.2-source]/build/*.war
	[tomcat]/webapps
</pre>
</div></div></li>
	<li>Restart Tomcat.</li>
	<li>To get image thumbnails generated and full-text extracted for indexing automatically, you need to set up a 'cron' job, for example one like this: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
# Run the media filter at 02:00 every day
0 2 * * *  [dspace]/bin/filter-media
</pre>
</div></div>
<p>You might also wish to run it now to generate thumbnails and index full text for the content already in your system.</p></li>
	<li><b>Note 1</b>: This update process has effectively 'touched' all of your items. Although the dates in the Dublin Core metadata won't have changed (accession date and so forth), the 'last modified' date in the database for each will have been changed. This means the e-mail subscription tool may be confused, thinking that all items in the archive have been deposited that day, and could thus send a rather long email to lots of subscribers. So, it is recommended that you <b>turn off the e-mail subscription feature for the next day</b>, by commenting out the relevant line in DSpace's cron job, and then re-activating it the next day. Say you performed the update on 08-June-2004 (UTC), and your e-mail subscription cron job runs at 4am (UTC). When the subscription tool runs at 4am on 09-June-2004, it will find that everything in the system has a modification date in 08-June-2004, and accordingly send out huge emails. So, immediately after the update, you would edit DSpace's 'crontab' and comment out the <em>/dspace/bin/subs-daily</em> line. Then, after 4am on 09-June-2004 you'd 'un-comment' it out, so that things proceed normally. Of course this means, any <em>real</em> new deposits on 08-June-2004 won't get e-mailed, however if you're updating the system it's likely to be down for some time so this shouldn't be a big problem.</li>
	<li><b>Note 2:</b> After consultation with the OAI community, various OAI-PMH changes have occurred:
	<ul>
		<li>The OAI-PMH identifiers have changed (they're now of the form <em>oai:hostname:handle</em> as opposed to just Handles)</li>
		<li>The set structure has changed, due to the new sub-communities feature.</li>
		<li>The default base URL has changed</li>
		<li>As noted in note 1, every item has been 'touched' and will need re-harvesting. The above means that, if already registered and harvested, you will need to re-register your repository, effectively as a 'new' OAI-PMH data provider. You should also consider posting an announcement to the <a href="http://www.openarchives.org/mailman/listinfo/OAI-implementers" title="OAI implementers e-mail list">OAI implementers e-mail list</a> so that harvesters know to update their systems. Also note that your site may, over the next few days, take quite a big hit from OAI-PMH harvesters. The resumption token support should alleviate this a little, but you might want to temporarily whack up the database connection pool parameters in <em>[dspace]/config/dspace.cfg</em>. See the <em>dspace.cfg</em> distributed with the source code to see what these parameters are and how to use them. (You need to stop and restart Tomcat after changing them.)I realize this is not ideal; for discussion as to the reasons behind this please see relevant posts to the OAI community: <a href="http://openarchives.org/pipermail/oai-implementers/2004-June/001214.html" title="post one">post one</a>, <a href="http://openarchives.org/pipermail/oai-implementers/2004-June/001224.html" title="post two">post two</a>, as well as <a href="#UpgradingaDSpaceInstallation-%5C" title="this post to the dspace-tech mailing list|">this post to the dspace-tech mailing list\</a>.If you really can't live with updating the base URL like this, you can fairly easily have thing proceed more-or-less as they are, by doing the following:</li>
		<li>Change the value of <em>OAI_ID_PREFIX</em> at the top of the <em>org.dspace.app.oai.DSpaceOAICatalog</em> class to <em>hdl:</em></li>
		<li>Change the servlet mapping for the <em>OAIHandler</em> servlet back to <em>/</em> (from <em>/request</em>)</li>
		<li>Rebuild and deploy &#95;oai.war_However, note that in this case, all the records will be re-harvested by harvesters anyway, so you still need to brace for the associated DB activity; also note that the set spec changes may not be picked up by some harvesters. It's recommended you read the above-linked mailing list posts to understand why the change was made.<br/>
Now, you should be finished&#33;</li>
	</ul>
	</li>
</ol>



<h2><a name="UpgradingaDSpaceInstallation-UpgradingFrom1.1to1.1.1"></a>Upgrading From 1.1 to 1.1.1</h2>

<p>Fortunately the changes in 1.1.1 are only code changes so the update is fairly simple.</p>

<p>In the notes below <tt>[dspace]</tt> refers to the install directory for your existing DSpace installation, and <em>[dspace-1.1.1-source]</em> to the source directory for DSpace 1.1.1. Whenever you see these path references, be sure to replace them with the actual path names on your local system.</p>

<ol>
	<li>Take down Tomcat.</li>
	<li>It would be a good idea to update any of the third-party tools used by DSpace at this point (e.g. PostgreSQL), following the instructions provided with the relevant tools.</li>
	<li>In <em>[dspace-1.1.1-source]</em> run:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
ant -Dconfig= [dspace]/config/dspace.cfg update
</pre>
</div></div></li>
	<li>If you have locally modified JSPs of the following JSPs in your <em>[dspace]/jsp/local</em> directory, you might like to merge the changes in the new 1.1.1 versions into your locally modified ones. You can use the <em>diff</em> command to compare the 1.1 and 1.1.1 versions to do this. The changes are quite minor.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
collection-home.jsp
admin/authorize-collection-edit.jsp
admin/authorize-community-edit.jsp
admin/authorize-item-edit.jsp
admin/eperson-edit.jsp
</pre>
</div></div></li>
	<li>Restart Tomcat.</li>
</ol>


<h2><a name="UpgradingaDSpaceInstallation-UpgradingFrom1.0.1to1.1"></a>Upgrading From 1.0.1 to 1.1</h2>

<p>To upgrade from DSpace 1.0.1 to 1.1, follow the steps below. Your <em>dspace.cfg</em> does not need to be changed. In the notes below <tt>[dspace]</tt> refers to the install directory for your existing DSpace installation, and <em>[dspace-1.1-source]</em> to the source directory for DSpace 1.1. Whenever you see these path references, be sure to replace them with the actual path names on your local system.</p>

<ol>
	<li>Take down Tomcat (or whichever servlet container you're using).</li>
	<li>We recommend that you upgrade to the latest version of PostgreSQL (7.3.2). Included are some notes to help you do this. Note you will also have to upgrade Ant to version 1.5 if you do this.</li>
	<li>Make the necessary changes to the DSpace database. These include a couple of minor schema changes, and some new indexes which should improve performance. Also, the names of a couple of database views have been changed since the old names were so long they were causing problems. First run <em>psql</em> to access your database (e.g. <em>psql &#45;U dspace &#45;W</em> and then enter the password), and enter these SQL commands:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
ALTER TABLE bitstream ADD store_number INTEGER;
UPDATE bitstream SET store_number = 0;

ALTER TABLE item ADD last_modified TIMESTAMP;
CREATE INDEX last_modified_idx ON Item(last_modified);

CREATE INDEX eperson_email_idx ON EPerson(email);
CREATE INDEX item2bundle_item_idx on Item2Bundle(item_id);
CREATE INDEX bundle2bitstream_bundle_idx ON
	Bundle2Bitstream(bundle_id);
CREATE INDEX dcvalue_item_idx on DCValue(item_id);
CREATE INDEX collection2item_collection_idx ON
	Collection2Item(collection_id);
CREATE INDEX resourcepolicy_type_id_idx ON ResourcePolicy
	(resource_type_id,resource_id);
CREATE INDEX epersongroup2eperson_group_idx on
	EPersonGroup2EPerson(eperson_group_id);
CREATE INDEX handle_handle_idx ON Handle(handle);
CREATE INDEX sort_author_idx on ItemsByAuthor(sort_author);
CREATE INDEX sort_title_idx on ItemsByTitle(sort_title);
CREATE INDEX date_issued_idx on ItemsByDate(date_issued);

DROP VIEW CollectionItemsByDateAccessioned;

DROP VIEW CommunityItemsByDateAccessioned;
CREATE VIEW CommunityItemsByDateAccession as SELECT
	Community2Item.community_id, ItemsByDateAccessioned.*  FROM
	ItemsByDateAccessioned, Community2Item WHERE
	ItemsByDateAccessioned.item_id = Community2Item.item_id;
CREATE VIEW CollectionItemsByDateAccession AS SELECT
	collection2item.collection_id,
	itemsbydateaccessioned.items_by_date_accessioned_id,
	itemsbydateaccessioned.item_id,
	itemsbydateaccessioned.date_accessioned FROM itemsbydateaccessioned,
	collection2item WHERE (itemsbydateaccessioned.item_id =
	collection2item.item_id);
</pre>
</div></div></li>
	<li>Fix your JSPs for Unicode. If you've modified the site 'skin' (<em>jsp/local/layout/header-default.jsp</em>) you'll need to add the Unicode header, i.e.:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
&lt;meta http-equiv=<span class="code-quote">"Content-Type"</span> content="text/html;
	charset=UTF-8"&gt;
</pre>
</div></div>
<p>to the &lt;HEAD&gt; element. If you have any locally-edited JSPs, you need to add this page directive to the top of all of them: </p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
&lt;%@ page contentType=<span class="code-quote">"text/html;charset=UTF-8"</span> %&gt;
</pre>
</div></div>
<p>(If you haven't modified any JSPs, you don't have to do anything.)</p></li>
	<li>Copy the required Java libraries that we couldn't include in the bundle to the source tree. For example:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cd  [dspace]/lib
cp *.policy activation.jar servlet.jar mail.jar
	[dspace-1.1-source]/lib
</pre>
</div></div></li>
	<li>Compile up the new DSpace code, replacing <em>[dspace]/config/dspace.cfg</em> with the path to your current, LIVE configuration. (The second line, <em>touch `find .`</em>, is a precaution, which ensures that the new code has a current datestamp and will overwrite the old code. Note that those are back quotes.)
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cd  [dspace-1.1-source]
touch `find .`
ant
ant -Dconfig= [dspace]/config/dspace.cfg update
</pre>
</div></div></li>
	<li>Update the database tables using the upgrader tool, which sets up the new &gt;<em>last_modified</em> date in the item table:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
Run  [dspace]/bin/dsrun
	org.dspace.administer.Upgrade101To11
</pre>
</div></div></li>
	<li>Run the collection default authorization policy tool: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"> [dspace]/bin/dsrun
	org.dspace.authorize.FixDefaultPolicies
</pre>
</div></div></li>
	<li>Fix the OAICat properties file. Edit <em>[dspace]/config/templates/oaicat.properties</em>. Change the line that says
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
Identify.deletedRecord=yes
</pre>
</div></div>
<p>To: </p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
Identify.deletedRecord=persistent
</pre>
</div></div>
<p>This is needed to fix the OAI-PMH 'Identity' verb response. Then run <em>[dspace]/bin/install-configs</em>.</p></li>
	<li>Re-run the indexing to index abstracts and fill out the renamed database views: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"> [dspace]/bin/index-all
</pre>
</div></div></li>
	<li>Restart Tomcat. Tomcat should be run with the following environment variable set, to ensure that Unicode is handled properly. Also, the default JVM memory heap sizes are rather small. Adjust <em>&#45;Xmx512M</em> (512Mb maximum heap size) and <em>&#45;Xms64M</em> (64Mb Java thread stack size) to suit your hardware.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
JAVA_OPTS=<span class="code-quote">"-Xmx512M -Xms64M -Dfile.encoding=UTF-8"</span>
</pre>
</div></div></li>
</ol>


				    
                    			    </td>
		    </tr>
	    </table>
	    <table border="0" cellpadding="0" cellspacing="0" width="100%">
			<tr>
				<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
			</tr>
		    <tr>
			    <td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
		    </tr>
	    </table>
    </body>
</html>